首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未填充FormCollection

未填充FormCollection
EN

Stack Overflow用户
提问于 2013-05-28 01:41:42
回答 2查看 1K关注 0票数 1

我正在处理一个MVC项目,我希望传递一个填充了表单数据的FormCollection,并将其发布到我的控制器中的操作方法中。下面是该视图的一个示例:

代码语言:javascript
复制
<asp:TextBox ID="txtClientLastName" name="txtClientLastName" runat="server" class="focus"/>

(是的,我知道!MVC视图中的ASP控件不是很好,但这就是我所拥有的。在视图中的标记之间也有后端代码,这就是为什么我没有替换它们的原因)

我使用帮助器链接到我的操作:

代码语言:javascript
复制
<%=Html.ActionLink("Save","ClientInformationEdit",new {id=Model.PersonId})%

它调用了我的操作:

代码语言:javascript
复制
 public ActionResult ClientInformationEdit(int id, FormCollection form)
   {
        //rptLOA_GridCommands(form, id);

       CIHelper ch = new CIHelper();


       ch.person.LastName = form["txtClientLastName"]; 
       db.SaveChanges();

        return View(ch);
    }

我的passes the correct value but FormCollection form is null so form["txtClientLastName"] is null and I don不知道为什么。

EN

回答 2

Stack Overflow用户

发布于 2013-05-28 01:46:07

添加如下post属性:

代码语言:javascript
复制
     [HttpPost]
 public ActionResult ClientInformationEdit(int id, FormCollection form)
   {
        //rptLOA_GridCommands(form, id);

       CIHelper ch = new CIHelper();


       ch.person.LastName = form["txtClientLastName"]; 
       db.SaveChanges();

        return View(ch);
    }

如果你想在点击超链接时发布表单,那么添加以下代码:

代码语言:javascript
复制
<%=Html.ActionLink("Save","ClientInformationEdit",new {id=Model.PersonId,onclick="document.getElementById('form-id').submit();"})%>
票数 0
EN

Stack Overflow用户

发布于 2013-05-28 01:55:21

试试这个:

代码语言:javascript
复制
@using (Html.BeginForm("Save", "ClientInformationEdit", FormMethod.Post))
{
    <input type="hidden" value="@Model.PersonId"/>
    <asp:TextBox ID="txtClientLastName" name="txtClientLastName" runat="server" class="focus"/>    
    <input type ="submit"/>
}

在您的视图中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16778095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档