Запрос HttpPatch в Asp .NET MVC

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

[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; }
    }
}

person podhornyi96    schedule 14.03.2016    source источник
comment
Вам нужно будет сделать запрос PATCH через javascript stackoverflow. ком/вопросы/24257327/   -  person Jasen    schedule 14.03.2016
comment
@Jasen Спасибо за ваш ответ. Итак, я должен сделать заголовок запроса с помощью javascript?   -  person podhornyi96    schedule 14.03.2016
comment
Сделайте запрос AJAX с помощью метода PATCH   -  person Jasen    schedule 14.03.2016
comment
@Jasen Спасибо, это работает!   -  person podhornyi96    schedule 16.03.2016


Ответы (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();
}
person podhornyi96    schedule 16.03.2016