2016-03-14 3 views
1

Я пытаюсь использовать метод в контроллере с аннотацией HttpPatch. Моя проблема в том, что когда я запускаю этот метод, у меня ошибка 404, ресурс не найден. Кажется, что я не удовлетворяет потребности в методах и отправляет запрос HttpPost, когда я нажимаю кнопку «Патч» вместо запроса HttpPatch. Если кто-нибудь знает, как запустить мой метод Patch с аннотацией HttpPatch. Вот мой контроллер:Запрос HttpPatch в Asp .NET MVC

[HttpPatch] 
public ActionResult Patch() 
{ 

    return View(); 
} 

Вот мое мнение:

@model Practice.Models.PatchModel 


<h2>Index</h2> 
@using (Html.BeginForm("Patch", "Home")) 
{ 
    <div> 
     @Html.Label("Age") 
     <div> 
      @Html.TextBoxFor(model => model.age) 
     </div> 
    </div> 
    <div> 
     @Html.Label("ID") 
     <div> 
      @Html.TextBoxFor(model => model.id) 
     </div> 
    </div> 
    <input type="submit" value="Patch" /> 
} 

и вот моя модель:

namespace Practice.Models 
{ 
    public class PatchModel 
    { 
     public int age { get; set; } 
     public int id { get; set; } 
    } 
} 
+0

Вам нужно сделать запрос PATCH через Javascript http://stackoverflow.com/questions/24257327/http-patch-support-in-browsers – Jasen

+0

@Jasen Спасибо за ваш ответ. Итак, я должен сделать заголовок запроса с помощью javascript? – podhornyi96

+0

Сделайте запрос AJAX с помощью метода PATCH – Jasen

ответ

1

Вот решение моего вопроса с помощью Ajax:

@model Practice.Models.Account.RegistrationViewModel  
<html> 
    <head> 
     <meta name="viewport" content="width=device-width" /> 
     <title>Login</title> 
     <script src="~/scripts/jquery-2.2.1.min.js"></script> 
     <script src="~/scripts/jquery.unobtrusive-ajax.min.js"></script> 
    </head> 
    <body> 
     <div> 
      @using (Ajax.BeginForm("ProcessLogin", "Account", new AjaxOptions() { HttpMethod = "PATCH" })) 
      { 
       @Html.LabelFor(x => x.Login) 
       @Html.EditorFor(x => x.Login) 
       <br /> 
       @Html.LabelFor(x => x.Password) 
       @Html.PasswordFor(x => x.Password) 
       <input type="submit" value="Login" /> 
      } 
     </div> 
    </body> 
    </html> 

и способ действия в контроллере:

[HttpPatch] 
public ActionResult ProcessLogin() 
{ 
    //some code ... 
    return View(); 
}