当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET-MVC中Form Form上的FormCollection为空

如何解决《ASP.NET-MVC中FormForm上的FormCollection为空》经验,为你挑选了1个好方法。

我使用过去经常使用的方法发布一个非常简单的表单.显示我的代码可能更容易,而不是输入冗长的解释.这是HTML:

<% Html.BeginForm("CreateMarketingType", "ListMaintenance"); %>
    
<%foreach (MarketingType marketingType in ViewData.Model.MarketingTypes) %> <%{ %> <%} %>
Marketing Type Id Marketing Type Name
<%= marketingType.MarketingTypeId.ToString() %> <%= marketingType.MarketingTypeName %>
Add New Marketing Type
<% Html.EndForm();%>

这是控制器代码:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult CreateMarketingType(FormCollection form)
{
    string newMarketingTypeName = Request.Form["txtNewMarketingTypeName"].ToString();

    MarketingType newMarketingType = new MarketingType() { MarketingTypeName = newMarketingTypeName };

    _marketingTypeRepository.AddNewMarketingType(newMarketingType);

    return View("ListMaintenance", GetModel());
}

提交按钮发布表单,并调用该方法,但我的参数中定义的表单对象为空.我也试过Request.Form,我得到了相同的结果.我在这里错过了什么吗?



1> Craig Stuntz..:

您的所有输入都没有名称属性.没有名字=不在FormCollection中.


@Mark,这是HTTP规范所必需的.`id` =如何在DOM中找到它.`name` =在`form`中提交的内容.
哎哟 - 这就是我在WebForms上成长的结果!我认为id属性传递了表单上的值.谢谢回复!!
果然,他是对的!(链接爱:http://www.w3.org/TR/html401/interact/forms.html#h-17.2)控件在发布时需要'name'属性.+1帮我停止拉头发.
推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有