2015-05-05 2 views
0

Я новичок в MVC и пытаюсь преобразовать стандартное веб-приложение .NET в MVC. Я работаю на странице входа.Ресурс не найден

В качестве шаблона я использую приложение MVC по умолчанию, которое поставляется с установкой.

Я добавил свою регистрационную форму на индексную страницу и изменил пункт действия формы на маршрут ActionController/Login.

При нажатии кнопки «Отправить» у меня есть ошибка, указывающая, что ресурс /AccountController/Login не найден.

Это мой индекс страницы:

@model Admin.Models.LoginModel 

@section featured { 
    <section class="featured"> 
     <div class="content-wrapper"> 
      <hgroup class="title"> 
       <h1>@ViewBag.Title</h1> 
      </hgroup> 
     </div> 
    </section> 
} 
<h3 class="logo">Title </h3> 

<section id="loginForm"> 
@using (Html.BeginForm("Login","AccountController", FormMethod.Post)) { 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

    <fieldset> 
     <legend>Please login</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> 
} 
</section> 

Это часть действий контроллера:

[Authorize] 
    [InitializeSimpleMembership] 
    public class AccountController : Controller 
    { 
     // 
     // GET: /Account/Login 

     [AllowAnonymous] 
     public ActionResult Login(string returnUrl) 
     { 
      ViewBag.ReturnUrl = returnUrl; 
      return View(); 
     } 

     // 
     // POST: /Account/Login 

     [AllowAnonymous] 
     [ValidateAntiForgeryToken] 
     public ActionResult Login(LoginModel model, string returnUrl) 
     { 
      if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password)) 
      { 
       return RedirectToLocal(returnUrl); 
      } 

      // If we got this far, something failed, redisplay form 
      ModelState.AddModelError("", "The user name or password provided is incorrect."); 
      return View(model); 
     } 
} 

Что я делаю неправильно здесь? Кажется, все в порядке.

ответ

0

Вам необходимо украсить ваше действие с помощью [HttpGet], чтобы показать, что это метод GET.

редактировать: также, метод POST необходим [HttpPost]

1

На ваш взгляд заменить Html.BeginForm со следующим:

@using (Html.BeginForm ("Вход", "Счет ", FormMethod.Post))

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