Asp.net mvc 4 MVC4查看多个提交按钮-更新标签文本
目前,我正在处理一个带有多个提交按钮的MVC4视图。为了处理不同按钮的提交,我使用以下类: 我有三个按钮和一个标签: 开始 备用物品 恢复 如何根据按下的按钮在标签中显示特定文本? 我希望使用Ajax.BeginForm更新标签文本(这样我就不必重新加载网页) 提前谢谢你Asp.net mvc 4 MVC4查看多个提交按钮-更新标签文本,asp.net-mvc-4,asp.net-ajax,asp.net-mvc-views,Asp.net Mvc 4,Asp.net Ajax,Asp.net Mvc Views,目前,我正在处理一个带有多个提交按钮的MVC4视图。为了处理不同按钮的提交,我使用以下类: 我有三个按钮和一个标签: 开始 备用物品 恢复 如何根据按下的按钮在标签中显示特定文本? 我希望使用Ajax.BeginForm更新标签文本(这样我就不必重新加载网页) 提前谢谢你 更新: 例如,当我单击开始按钮时,将执行一个方法。此方法返回true或false。如何根据方法的结果捕获此布尔值并在标签中显示文本 更新2: <div> <fieldset>
更新: 例如,当我单击开始按钮时,将执行一个方法。此方法返回true或false。如何根据方法的结果捕获此布尔值并在标签中显示文本 更新2:
<div>
<fieldset>
<legend>Admin Form</legend>
@Html.Label("Options")
<div id="StartBtn">
<input id="Start" type="submit" value="Start" name="action:Start" />
</div>
<div id="StandbyBtn">
<input id="Standby" type="submit" value="Standby" name="action:Standby" />
</div>
<div id="ResumeBtn">
<input id="Resume" type="submit" value="Resume" name="action:Resume" />
</div>
</fieldset>
</div>
[MultipleButton(Name = "action", Argument = "Start")]
public ActionResult Start()
{
if (start())
{
}
else
{
}
}
管理表格
@Html.Label(“选项”)
[多按钮(Name=“action”,Argument=“Start”)]
公共行动结果开始()
{
if(start())
{
}
其他的
{
}
}
根据您的更新,我将使用ajax调用而不是ajax表单
$('.btnSubmit').on('click', function(){
$.ajax({
url: '@Url.Action('Start', 'Controller')',
type: 'post',
data: {
button: this.id
}
dataType: 'json',
success: function(result){
if(result.Success){
$('.lblText').text(result.SetText);
}
}
});
});
我不知道您希望传递给控制器的是什么,但是如果您在所有按钮上都放置了相同的类(您需要将它们更改为type button而不是submit),那么this.id将是单击按钮的id,并将发送给控制器
然后在控制器上有一个与数据字段匹配的输入字段
public ActionResult Start(string button){
//do something
//from here http://stackoverflow.com/questions/7732481/returning-json-from-controller-never-a-success
return Json(new { Success = "true", SetText = 'SetText' });
//Where SetText is whatever you want your label set to.
}
你可以查看这篇文章
@使用(Html.BeginForm(“ActionTaked”、“TestController”))
{
测试1
测试2
}
[接受动词(HttpVerbs.Post)]
公共操作结果已采取的操作(字符串对接)
{
字符串ButtCommand=butt;
开关(命令)
{
案例“行动一”:
//在这里做事
案例“行动二”:
//在这里做事
违约:
返回视图();
}
}
但难道不能为所有提交按钮创建一个功能吗?目前你有。b没有。还有一些语法错误..?如果它们都有相同的类,那么这些代码将针对它们中的每一个。只需将btnOne替换为该类名。您没有发布视图代码,所以我只是在代码中添加了占位符名称。如果您仍然遇到语法错误,请发布它们,我会看看是否可以帮助您解决它们。},contentType:'application/json;charset=utf-8',(没有,在}之后请参阅OP中的更新2以获取代码。那么,在我的公共ActionResult Start()中返回什么以及如何捕获它?请参阅我编辑的答案。我意识到我在ajax调用中缺少url属性。从您的注释中,我删除了您收到错误的行。我认为这不是必需的。希望这能有所帮助
@using (Html.BeginForm("ActionTaken", "TestController"))
{
<button name="button" value="ActionOne" class="button" style="width: 200px;">
test1</button>
<button name="button" class="button" style="width: 160px;" value="ActionTwo">
test2</button>
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ActionTaken(string butt)
{
string ButtCommand= butt;
switch (ButtCommand)
{
case "ActionOne":
//do stuff here
case "ActionTwo":
//do stuff here
default:
return View();
}
}