2016-06-08 62 views
0

我有一個.cshtml網頁幾個按鈕是這樣的:如何在JavaScript中向MVC控制器提交表單時傳遞參數?

<input id="btnViewHistory" type="submit" name="postFunction" value="View History" /> 
<input id="btnComments" type="submit" name="postFunction" value="Comments" /> 

當提交表單時,參數「postFunction」傳遞給控制器​​和我可以檢查按下哪個按鈕:

[HttpPost] 
    public ActionResult LabApprovals(ModelApproval model, int page, string postFunction) 
    { 
     if (postFunction == null) 
     { 
      ... 
     } 
     else if (postFunction == "View History") 
     { 
      ... 
     } 
     else if (postFunction == "Comments") 
     { 
      ... 
     } 
     else 
     { 
      return View(model); 
     } 
    } 

所以,如果你點擊「查看歷史記錄」按鈕,當控制器被擊中postFunction =「查看歷史記錄」。

我需要從Javascript提交表單以外的其他原因按鈕按下。我有Javascript來提交表單,但我如何傳遞參數?我試圖讓postFunction有一個值,如「更改頁面」,當達到控制器。

$("#txtPage").kendoNumericTextBox({ 
    change: function() { 
     $("#formLabApprovals").submit(); 
    } 
    }); 

回答

4

通常會將腳本提供的值放在隱藏字段中,以便它們流向控制器但對用戶不可見。在現有腳本中設置字段的值。

< INPUT TYPE = 「隱藏」 名稱= 「fieldFromScript」/ >

1

可以使用.val(*value*)方法來分配值編程屬性。

$("#txtPage").kendoNumericTextBox({ 
change: function() { 
    $("#formLabApprovals").val("Changed Page"); 
    $("#formLabApprovals").submit(); 
} }); 

jQuery(#id).val() VS getElementById(#id).value是另一篇文章中有關使用.val()一些相關信息。

0

這與其他答案類似,但我想我也會發布這個。這是我最終做到的,以使其運作。我發現這個頁面很有幫助:jQuery - add additional parameters on submit (NOT ajax)

var input = $("<input>") 
    .attr("type", "hidden") 
    .attr("name", "postFunction").val("ChangePage"); 
$('#formLabApprovals').append($(input)); 
$("#formLabApprovals").submit(); 
相關問題