MVC中Post提交问题

我现在在路上 2014-06-10 09:08:43
问题是在控制器里接收不到FruitCategory的对象,而且action的地址怎么老是我写的后面加个传过来的ID?
怎么才能用BeginForm()正确的post过来?






...全文
458 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
我现在在路上 2014-06-13
  • 打赏
  • 举报
回复
好把,学MVC继续。。以后肯定会懂的
Sheldon_Lou 2014-06-11
  • 打赏
  • 举报
回复
上面的没写完就发出去了。 楼主可以在displayfor下面加一个hiddenfor
Sheldon_Lou 2014-06-11
  • 打赏
  • 举报
回复
表示没用过displayfor,, 看了一下DisplayFor生成的html标签,表示。。。。
  • 打赏
  • 举报
回复
查看一下网络请求,看前台提交的都是些什么数据
我现在在路上 2014-06-11
  • 打赏
  • 举报
回复
难道没人知道吗?求解惑啊
我现在在路上 2014-06-11
  • 打赏
  • 举报
回复
引用 27 楼 insus 的回复:
参考: http://www.cnblogs.com/insus/p/3548344.html
insus前辈,你好: 我就是看你的博文学习的,为什么我也用@Html.DisPlay就不能生成带name的标签? 就是这篇 而且之前BeginForm自动生成的action老是在正确的地址后加个传过来的参数? 现在我用@Html. HiddenFor就可以了,,,对了,首先是把@model IEnumerable<FruitCategory> 改成了@model FruitCategory,因为我发现@html.HiddenFor生成的name老是带item_,我想是和@model有关。。
insus 2014-06-11
  • 打赏
  • 举报
回复
我现在在路上 2014-06-11
  • 打赏
  • 举报
回复
嗯,我试试,但是他生成的是

<input id="item_FruitCategoryId" name="item.FruitCategoryId" type="hidden" value="8" />;
我是这样写的@Html.HiddenFor(o => item.FruitCategoryId),这样写不对吗?
引用 25 楼 lousaibiao 的回复:
taobaoyes 2014-06-10
  • 打赏
  • 举报
回复
Delete(FruitCategory fc)这里的FruitCategory只是类,只是起到存储值的作用,并不是对应数据库里面的表
taobaoyes 2014-06-10
  • 打赏
  • 举报
回复
你把VIEW源码都贴出来看下
嫣如舜华 2014-06-10
  • 打赏
  • 举报
回复
@using (Html.BeginForm("Delete", "Category", new { id ="" }, FormMethod.Post))
我现在在路上 2014-06-10
  • 打赏
  • 举报
回复
昨天百度没百度到。。。
我现在在路上 2014-06-10
  • 打赏
  • 举报
回复
引用 3 楼 taobaoyes 的回复:
那你就把controller用FormCollection form 作为参数, 获取ID值,然后再删除
获取ID是肯定可以的,我只是想为什么用个对象作为参数就不行了?
taobaoyes 2014-06-10
  • 打赏
  • 举报
回复
那你就把controller用FormCollection form 作为参数, 获取ID值,然后再删除
我现在在路上 2014-06-10
  • 打赏
  • 举报
回复
人都还没上班?
我现在在路上 2014-06-10
  • 打赏
  • 举报
回复
刚学MVC
royler 2014-06-10
  • 打赏
  • 举报
回复
看你的样子,你只需要在form里面加个隐藏字段即可 @Html.Hidden("id","") //后面这个是你item里面id的值
引用 15 楼 ta_wuhen 的回复:
[quote=引用 14 楼 royler 的回复:] 在form里面必须要有必须要有name才会post上去得到内容
引用 7 楼 taobaoyes 的回复:
你把VIEW源码都贴出来看下

@using (Html.BeginForm("Delete", "Category", new { FruitCategoryId=0, CategoryName="" }, FormMethod.Post))
{
    <table style="border:1px solid blue">
    <thead>
        <tr>
            <td>ID</td>
            <td>Name</td>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td style="width:100px">
                   @Html.DisplayFor(o => item.FruitCategoryId)
                    
                </td>
                <td style="width:100px">
                   @Html.Label(item.CategoryName.ToString())
                </td>
              
            </tr>
        }
    </tbody>
</table>
     <button id="btnDel" type="submit">Delete</button>
}
[/quote]
lw402365015 2014-06-10
  • 打赏
  • 举报
回复
快乐起航2020 2014-06-10
  • 打赏
  • 举报
回复
引用 15 楼 ta_wuhen 的回复:
[quote=引用 14 楼 royler 的回复:] 在form里面必须要有必须要有name才会post上去得到内容
引用 7 楼 taobaoyes 的回复:
你把VIEW源码都贴出来看下

@using (Html.BeginForm("Delete", "Category", new { FruitCategoryId=0, CategoryName="" }, FormMethod.Post))
{
    <table style="border:1px solid blue">
    <thead>
        <tr>
            <td>ID</td>
            <td>Name</td>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td style="width:100px">
                   @Html.DisplayFor(o => item.FruitCategoryId)
                    
                </td>
                <td style="width:100px">
                   @Html.Label(item.CategoryName.ToString())
                </td>
              
            </tr>
        }
    </tbody>
</table>
     <button id="btnDel" type="submit">Delete</button>
}
[/quote] 提交表单的参数不是和后台接收的参数要一样么
快乐起航2020 2014-06-10
  • 打赏
  • 举报
回复
没有传递参数
加载更多回复(9)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧