2014-01-28 3 views
1

Можете ли вы помочь мне интерпретировать этот фрагмент кода? Что происходит после того, как пользователь нажимает «Войти»?Как использовать Html.BeginForm?

@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) 
{ 
<fieldset> 
    <legend>Log in Form</legend> 
    <ol> 
     <li> 
      @Html.LabelFor(m => m.UserName) 
      @Html.TextBoxFor(m => m.UserName) 
      @Html.ValidationMessageFor(m => m.UserName) 
     </li> 
     <li> 
      @Html.LabelFor(m => m.Password) 
      @Html.PasswordFor(m => m.Password) 
      @Html.ValidationMessageFor(m => m.Password) 
     </li>    
    </ol> 
    <input type="submit" value="Log in" /> 
</fieldset> 
} 

Btw, не удалось найти документацию Google по Html.BeginForm вообще.

+0

Он просто отображает тег HTML-формы, кнопка представляет форму и, следовательно, тип «отправить». Предложение 'using' гарантирует, что вызывается dispose, который отображает тег close. IMO это злоупотребление языковой функцией, но это то, что есть. – asawyer

+0

Что еще более важно, что такое "new {ReturnUrl = ViewBag.ReturnUrl}" ?? Представляет ли он возвратуURL? <- который, как я предполагаю, предназначен для функции контроллера. –

+0

* Btw, не удалось найти документацию Google по Html.BeginForm вообще. *. Первый результат для «beginform»: http://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform(v=vs.118).aspx –

ответ

1

Форма отправляется на тот же URL-адрес, который ее отобразил.

Как указано в documentation, используется перегрузка BeginForm(this HtmlHelper helper, object routeValues), поэтому значение ReturnUrl будет передано в качестве значения маршрута. То, что происходит с этим значением, зависит от маршрутов приложения - обычно оно будет добавлено к URL-адресу запроса в качестве параметра строки запроса.

Попробуйте реализовать представление и изучить визуализированную разметку.

Смежные вопросы