我有一个文本框和一个按钮,当单击按钮时,我想从控制器调用一个动作并将文本框值作为参数传递。那么我该怎么做呢?
问问题
143 次
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 回答