2010-03-15 69 views
3

当我使用Html.BeginForm在更新项目时提交表单时,似乎不可能定义PUT。它是否正确?Html.BeginForm PUT

回答

2

是的,这是正确的。浏览器只支持GET和POST发送表单。你可以尽管使用AJAX:

$.ajax({ 
    url: '/action', 
    type: 'PUT', 
    data: { param1: 'value1' }, 
    success: function(result) { 

    } 
}); 

如果你想AJAXify表单提交,你可以看看的jquery.form插件。

+0

这就是我以前做过的事情(使用jQuery)。不知道你不能放置一个表格 - 如果一个体面的浏览器不能够做到这一点,如果它会'平静'/正确使用HTML或我说废话? – cs0815 2010-03-15 17:45:39

1

...如果一个体面的浏览器不能够做到这一点,如果它会'平静'/正确使用HTML或我说废话?

根据HTML4 spec,Form元素只支持GET和POST。从技术上讲,任何允许其他动词的浏览器都不符合规范。它看起来像HTML5将支持其他动词。

编辑:它看起来像现在我可以链接到这两个文件。

+0

谢谢我会接受达林的答案。 – cs0815 2010-03-15 17:59:11

2

如果使用ASP.NET MVC 2,请检查Html.HttpMethodOverride方法和HttpPutAttribute。

ASP.NET MVC 1.0还检查MVC 2源代码。 HttpRequestExtensions.GetHttpMethodOverride方法非常酷!