2009-04-23 149 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(「用戶名」))