2009-04-23 103 views
2

考虑以下标记:ASP.Net MVC模型绑定返回空值

<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属性,我发现正在发布的值正确。

?的Request.Form {用户名= SDF &密码= SDF} [System.Web.HttpValueCollection]:{用户名= SDF &密码= SDF} 基{System.Collections.Specialized.NameObjectCollectionBase}:{用户名= SDF &密码= SDF} AllKeys:{字符串[2]}

+0

我假设你检查了正确的动作张贴表格后打? – 2009-04-23 03:51:04

回答

0

史蒂夫我有一个类似的问题,我发现这是因为我的属性键和值在我的模型,模型绑定不喜欢。

尝试将UserName更改为用户和密码以通过并查看问题是否仍然存在。

0

当你运行这个程序时,你可以尝试将调试器附加到MVC源代码,以查看阀盖/罩下发生了什么。

1

您是否尝试将Bind属性添加到参数中?

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Index([Bind]string UserName, [Bind]string Password) 
{ 
    //UserName and Password are null! Why?    
} 
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是发布的第一个值。

0

请name属性添加到您的控制(Html.TextBox(“用户名”))