2010-03-15 30 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方法非常酷!