使用MVC 5,是否有可能有在同一页面上更新标签的按钮单击事件?
举例来说,如果我有一个结构
@using (Html.BeginForm()) {
<fieldset>
<legend>Form</legend>
<p>
@Html.TextBox("textbox1")
</p>
<p>
@Html.Label("label1")
</p>
<p>
<input type="submit" value="Submit" />
</p>
</fieldset>
}
点击Submit
按钮,抓住textbox1
是根据当按钮被点击提交,然后更新标签作为结果的值被调用函数的值,修改?
假设我的控制器称为TestController.cs
,这是所有做Index
页
我注意到一些建议,包括使用AJAX(新的我)
你不一定需要使用AJAX这一点。 所有你需要做的是通过你的标签值回落为你的行动的结果如的一部分
调节器
public class TestController : Controller
{
public ActionResult Index(string label)
{
// pass label value into view
return View("Index", label ?? "");
}
[HttpPost]
public ActionResult Index(string textValue)
{
// do something with textValue
// redirect to our Index action passing the new label value
return RedirectToAction("Index", textValue);
}
}
视图
@model string
@using (Html.BeginForm()) {
<fieldset>
<legend>Form</legend>
<p>
@Html.TextBox("textbox1")
</p>
<p>
@Html.Label("label", Model)
</p>
<p>
<input type="submit" value="Submit" />
</p>
</fieldset>
}
这种方法的好处是它沿用了邮政/重定向/获取模式,所以如果你刷新页面就不会再次尝试重新提交表单。
尝试这个 :
您CSHTML代码:
@using (Html.BeginForm()) {
<fieldset>
<legend>Form</legend>
<p>
<input type="text" id="textbox" name="textbox"/>
</p>
<p>
<lable id ="lable"></lable>
</p>
<p>
<input type="button" id="button" value="Submit" />
</p>
</fieldset>
}
jQuery的:
<script type="text/javascript">
$(document).ready(function(){
$("#button").click(function(){
document.getElementById("lable").innerHTML = $("#textbox").val();
});
});
</script>
演示:
http://jsfiddle.net/mgGj6/2/
希望它的作品...!
谢谢。