2009-04-23 4 views
2

Учитывая следующую разметку:ASP.Net MVC модель Binding Возвращение значений Null

<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?    
    } 

Edit: Значения формы публикуются. Если я проверяю свойство Request.Form, я вижу, что правильные значения публикуются.

? Request.Form {UserName = SDF & Пароль = SDF} [System.Web.HttpValueCollection]: {UserName = SDF & Пароль = SDF} { база System.Collections.Specialized.NameObjectCollectionBase}: {UserName = SDF = & Пароль SDF} AllKeys: {строка [2]}

+0

И я предполагаю, что вы проверили, что правильное действие удар после отправки формы? –

+0

Да, правильное действие вызывается после публикации формы. –

+0

Странно. У меня есть точный код, работающий передо мной. Возможно, вы используете другое связующее устройство? –

ответ

0

Стив у меня была аналогичная проблема, и я нашел, что это потому, что я имел свойства Key и Value на моей модели, модель связующий не любит.

Попробуйте изменить UserName на пользователя и пароль, чтобы пройти и посмотреть, существует ли проблема.

0

Вы можете попробовать подключить отладчик к источнику MVC при его запуске, чтобы посмотреть, что происходит под капотом.

1

Вы пытались добавить атрибут привязки к параметрам?

[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

Пожалуйста, добавьте имя свойства для элемента управления (Html.TextBox («UserName»))