首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >局部视图MVC3中的多个提交按钮

局部视图MVC3中的多个提交按钮
EN

Stack Overflow用户
提问于 2013-09-20 07:10:46
回答 2查看 2.5K关注 0票数 0

我使用局部视图。在它里面我有:

代码语言:javascript
运行
复制
@using (Html.BeginForm("MyMethod", "MyController", FormMethod.Post))
{
<input type="submit" id="btn1" name="btnSubmit" value="Add record" />
<input type="submit" id="btn2" name="btnSubmit" value="Use record" />
}

然后在控制器HttpPost方法中,我有:

代码语言:javascript
运行
复制
[HttpPost]
public ActionResult MyMethod(string btnSubmit)
{
...
}

问题是btnSubmit始终为空。我尝试直接调用这个分部视图,它返回正确的值。

你知道怎么解决这个问题吗?提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-09-20 14:09:27

我试着执行你的代码,不管是直接调用局部视图还是在另一个视图中调用,都运行得很好。

无法识别源文件中的问题所在。我想你必须提供更多关于这方面的信息。

以下是我在我的解决方案中尝试的方法。您可以查看它是否对您有帮助

局部视图:

代码语言:javascript
运行
复制
@using (Html.BeginForm("MyMethod", "Home", FormMethod.Post))
{
<input type="submit" id="btn1" name="btnSubmit" value="Add record" />
<input type="submit" id="btn2" name="btnSubmit" value="Use record" />
}

控制器:

代码语言:javascript
运行
复制
        public ActionResult Index()
        {
            ViewBag.Message = "Welcome to ASP.NET MVC!";

            return View();
        }

        public ActionResult MyMethod()
        {
            return PartialView();
        }

        [HttpPost]
        public ActionResult MyMethod(string btnSubmit)
        {
            return RedirectToAction("Index");
        }

并在索引视图中添加了以下行:

代码语言:javascript
运行
复制
@Html.Action("MyMethod")
票数 0
EN

Stack Overflow用户

发布于 2013-09-20 17:44:49

你想的是“MVC Forms”的方式,在这种方式下,你的事件与触发它们的元素有关的信息在ASP.NET中没有这样的概念。

在MVC中,您需要拥有并调用不同的操作(控制器方法)来完成您想要做的任何事情。此操作可以有参数。如果此参数具有正确的名称,则它们将接收已发布的数据。在您的示例中,您希望btnSubmit“自动”获取按钮的名称,但这不会以任何方式发布。

你可以用3种不同的方法来解决这个问题:

  • 在表单中创建一个隐藏字段,当单击submit按钮(onclick按钮事件)时,用所需的信息填充它。
  • 创建两个不同的操作,并使您的按钮将表单发布到不同的操作。您可以使用UrlHelper来获取要发布的操作的url。(在提交按钮onclick

中单击表单的method).

  • change属性

第二种解决方案涉及以下两种技术中的一种:

  • formaction attribute,它只能在现代browsers
  • simulate中使用不起眼的javascript和

的"data- formaction“属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18906421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档