给出以下标记:
<form method="post" action="/home/index">
Username:
<%= Html.TextBox("UserName")%>
Password:
<%= Html.TextBox("Password")%>
<input id="login" type="button" value="Login" />
<input id="Submit1" type="submit" value="submit" />
</form>
你能告诉我为什么在调用我的动作时模型绑定不起作用:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(string UserName, string Password)
{
//UserName and Password are null! Why?
}
编辑: 表单值已过帐。如果我检查Request.Form属性,我看到正在发布正确的值。
?申请表 {用户名= SDF&安培;密码= SDF} [System.Web.HttpValueCollection]:{UserName = sdf&amp; Password = sdf} base {System.Collections.Specialized.NameObjectCollectionBase}:{UserName = sdf&amp; Password = sdf} AllKeys:{string [2]}
答案 0 :(得分:1)
您是否尝试将Bind属性添加到参数中?
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index([Bind]string UserName, [Bind]string Password)
{
//UserName and Password are null! Why?
}
答案 1 :(得分:1)
我遇到了类似的问题,结果是由于字段的命名。
<form method="post" action="/company/update/3">
Name:
<%= Html.TextBox("Company.Name")%>
FEIN:
<%= Html.TextBox("FEIN")%>
<input type="submit" value="submit" />
</form>
发布到:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(int id, Company company)
{
//Company.FEIN is null!
}
如果Company.Name是第一个发布的值,这似乎就会发生。
答案 2 :(得分:0)
尝试将UserName更改为user,密码传递并查看问题是否仍然存在。
答案 3 :(得分:0)
您可以尝试在运行此程序时将调试程序附加到MVC源,以查看引擎盖/引擎盖下发生的情况。
答案 4 :(得分:0)
请为您的控件添加名称属性(Html.TextBox(“UserName”))