2013-02-12 51 views
1

我有以下由jQuery ajax提交的html表單。我似乎無法理解如何從輸入文本框'從我的控制器中獲取值。我希望Request.Form [「waitMinutes」]能夠正常工作,但是它在我的控制器中是空的。在MVC4控制器中獲取表單值

從控制器中獲取表單值的祕訣是什麼?

<form method="post" [email protected]("UpdateWaitTime", "Facilities")' data-ucw-updateWaitTimeForm="@facility.Id" style="display:none" > 
    <input type="hidden" id='faciility' value="@facility.Id" /> 
    <input type="text" id="waitMinutes" value="0" style="width:15px" /> 
    <input type="submit" value="Update Wait Time" /> 
    <span class="UpdateMessage"></span> 
</form> 

我的Jquery AJAX提交的代碼是:

var ajaxUpdateWaitTime = function() { 
     var $form = $(this); 

     var options = { 
      url: $form.attr('action'), 
      type: $form.attr('method'), 
      data: $form.serialize() 
     }; 

     $.ajax(options).done(function (data) { 
     ... 
     }); 
+0

您需要給'name' attr同意你的輸入......'' – nemesv 2013-02-12 21:37:36

+0

就是這樣!將此添加爲答案,我會將您標記爲回答。謝謝你的手! – ChiliYago 2013-02-12 22:05:09

回答

1

如果你想你的輸入值發送回你需要給他們的服務器name(給他們一個ID不足夠)。

jQuery.serializable ducumentation(重點由我加的)

對於表單元素的值要包含在序列化的字符串,的元素必須有一個name屬性

所以乾脆放棄您的輸入name s,它應該工作正常:

<form method="post" [email protected]("UpdateWaitTime", "Facilities")' 
     data-ucw-updateWaitTimeForm="@facility.Id" style="display:none" > 
    <input type="hidden" name='faciility' id='faciility' value="@facility.Id" /> 
    <input type="text" name="waitMinutes" id="waitMinutes" value="0" 
      style="width:15px" /> 
    <input type="submit" value="Update Wait Time" /> 
    <span class="UpdateMessage"></span> 
</form>