Asp.net mvc 4 MVC4查看多个提交按钮-更新标签文本

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>

目前,我正在处理一个带有多个提交按钮的MVC4视图。为了处理不同按钮的提交,我使用以下类:

我有三个按钮和一个标签: 开始 备用物品 恢复

如何根据按下的按钮在标签中显示特定文本? 我希望使用Ajax.BeginForm更新标签文本(这样我就不必重新加载网页)

提前谢谢你


更新: 例如,当我单击开始按钮时,将执行一个方法。此方法返回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();
             }
          }