2012-08-08 56 views
0

我有一個文本框和一個按鈕,當單擊該按鈕時,我想從控制器調用一個動作並將該文本框的值作爲參數傳遞。那我該怎麼做?從參數調用動作

+0

嘗試閱讀[this](http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3)以開始閱讀。 – 2012-08-08 11:37:37

回答

0

你必須通過JavaScript來做到這一點,是標準或更可能的,jQuery。

這裏有很多關於這種類型的功能的例子,搜索$ ajax和mvc文本框的值。

例如:

$(function() { 
    var txtBoxValue = $('#yourTextboxId').val(); 
    $.ajax({ 
     url: '@Url.Action("Youraction", "Yourcontroller")', 
     data: { id: txtBoxValue }, 
     success: function(data) { 
     $('.result').html(data); 
     alert('Load was performed.'); 
     } 
    });  
}); 

[編輯] - 根據用例(你不指定),你當然可以換一種形式標籤內的文本框,只需提交在'正常「時尚,從而在行動的表格收集中捕獲文本框'名稱'和'價值'。

0

取決於您想要做什麼,在一般情況下,我建議您將您的視圖強制鍵入(對您的模型),並在視圖中使用表單。下面是告訴你如何做到這一點的例子(呼叫從視圖中addPerson的方法):

視圖「addPerson的」

@model MvcApplication.Models.Person 
//You can pass in the actionName and the controllerName as parameters to the method BeginForm() 
@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.FirstName) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.FirstName) 
     @Html.ValidationMessageFor(model => model.FirstName) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.LastName) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.LastName) 
     @Html.ValidationMessageFor(model => model.LastName) 
    </div> 

    <p> 
     <input type="submit" value="Create" /> 
    </p> 
} 

中的「人」控制器的操作

[HttpPost] 
public ActionResult AddPerson(Person person) 
{ 
    // The code 
    return View("OperationEndWithSuccess"); 
}