0

我有一个文本框和一个按钮,当单击按钮时,我想从控制器调用一个动作并将文本框值作为参数传递。那么我该怎么做呢?

4

2 回答 2

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");
}
于 2012-08-09T12:45:52.970 回答
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.');
      }
    });    
});

[编辑] - 根据用例(您未指定),您当然可以将文本框包装在表单标签中并以“正常”方式提交,从而捕获文本框“名称”和“值”在 action 的 formcollection 中。

于 2012-08-08T11:38:59.297 回答