Создание кнопок RESTful для ASP.Net MVC 2 - PullRequest
2 голосов
/ 23 декабря 2010

Я пытаюсь реализовать проект RESTful MVC с использованием C # и ASP.Net, соответственно у меня есть контроллер с методами, различаемыми по типам запросов, как этот упрощенный пример:

[HttpGet, ActionName("Instance")]
public ActionResult Get(string id) {
    //Get
}

[HttpPut, ActionName("Instance")]
public ActionResult Update(string id, Instance instance) {
    //Update
}

[HttpDelete, ActionName("Instance")]
public ActionResult Delete(string id) {
    //Delete
}

В представлении, которое я хочуотобразить Экземпляр и иметь кнопки для обновления и удаления, которые вызовут соответствующие действия выше.Каков наилучший способ создания этих кнопок, чтобы они генерировали запрос с соответствующим типом запроса?

Ответы [ 2 ]

3 голосов
/ 23 декабря 2010
<%: Html.ActionLink("Get button", "Instance", new { id = "123" }) %>

<% using (Html.BeginForm("Instance", "ControllerName", new { id = "123" }, FormMethod.Post)) %>
    <%: Html.HttpMethodOverride(HttpVerbs.Put) %>
    <%: Html.TextBoxFor(x => x.Prop1) %>
    <%: Html.TextBoxFor(x => x.Prop2) %>
    <input type="submit" value="Put button" />
<% } %>

<% using (Html.BeginForm("Instance", "ControllerName", new { id = "123" }, FormMethod.Post)) %>
    <%: Html.HttpMethodOverride(HttpVerbs.Delete) %>
    <input type="submit" value="Delete button" />
<% } %>
3 голосов
/ 23 декабря 2010

Это должно помочь: http://blog.osbornm.com/archive/2009/11/24/overriding-the-http-verb-in-asp.net-mvc-2.aspx

Кроме того, для действия DELETE (где вам нужен только Id) вы можете иметь другую маленькую форму и использовать метод HttpMethodOverride html helper. Смотри http://geekswithblogs.net/michelotti/archive/2010/01/08/implementing-a-delete-link-with-mvc-2-and-httpmethodoverride.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...