如何将此文本框上的值传递给controler。
在Index.cshtml文件中
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<form>
<input type="text" id="test" name="test" />
<input type="submit" value="Click" />
</form>
</body>
在MyHomeControler文件中
public ActionResult Index(string test)
{
string val = test;
return View();
}
答案 0 :(得分:2)
您正确传递了值。但是,您的表单实际上并不是指该操作。 (或任何操作。)您可以手动执行:
<form action="/MyHome/Index">
或者,理想情况下,使用HTML帮助程序:
@using (Html.BeginForm("Index", "MyHome"))
{
<input type="text" id="test" name="test" />
<input type="submit" value="Click" />
}
使用HTML帮助程序可让框架决定操作的正确路径,以防它以不同方式路由。
答案 1 :(得分:2)
首先,您需要按下“提交”类型。所以你的表格价值会是 提交给你的Action方法。
<input type="submit" value="submit" />
其次,您需要在Action方法中将模型添加为参数。
[HttpPost]
public ActionResult MyDemoForm(FormModel modelObj)
{
var strFname=modelObj.FirstName;
return View();
}
第三,如果你的控制器名称是“MyFormController”。你需要 将视图中Html.Beginform的参数更改为:
@using (Html.BeginForm("MyDemoForm", "MyForm", FormMethod.Post))
{
//your fields
}
如果您的视图与Action方法的名称相同,即“MyDemoForm”,则无需在Html.BeginForm中添加任何参数。只是为了简单。像这样:
@using (Html.BeginForm())
{
//your fields
}