gpt4 book ai didi

c# - MVC 5 在一个 View 上多次提交

转载 作者:太空狗 更新时间:2023-10-29 21:49:09 25 4
gpt4 key购买 nike

<分区>

我知道这个问题已经被问过多次了。但到目前为止,我还没有找到可行的解决方案。

我在 View 中有以下代码:

@using (Html.BeginForm("RoleEdit", "AccountRoles", FormMethod.Post, new { id = "updaterole" }))
{
<button name="mySubmit" formaction="@Url.Action("SetDefaultRole", "AccountRoles")" value="MakeDefault" class="button small">Make Default</button>

...


other code

...

<button type="submit" class="button small" value="save" name="save" id="save">@Resources.DashBoardTags.UpdateRoleTag</button>
}

在 Controller 中:

   [HttpPost]
public ActionResult SetDefaultRole()
{

return View();
}

和:

    [HttpPost]
public ActionResult RoleEdit(List<UserRole> userRole, string mySubmit)
{

if (mySubmit == "Save Draft")
{
//save draft code here
}
else if (mySubmit == "Publish")
{
//publish code here
}
}

代码执行时:

  1. 当点击第一个提交按钮时,它会忽略 SetDefaultRole 函数并执行 RoleEdit 函数。

  2. RoleEdit 函数值 mySubmit 为空。

请告诉我错误的方法!!!!

我查看了建议的解决方案:Proposed Solution

由此,我创建了一个名为 MultipleButton 的属性扩展,并更改了我的代码,使代码现在看起来像这样:

查看:

@using (Html.BeginForm("RoleEdit", "AccountRoles", FormMethod.Post, new { id = "updaterole" }))
{
<button value="SetDefaultRole" name="action:SetDefaultRole" class="button small" formmethod="post">Make Default</button>

...


other code

...

<button value="RoleEdit" name="mySubmit:RoleEdit" class="button small" formmethod="post">@Resources.DashBoardTags.UpdateRoleTag</button>
}

Controller

    [HttpPost]
[MultipleButton(Name= "action", Argument = "SetDefaultRole")]
public ActionResult SetDefaultRole()
{

return View();
}

[HttpPost]
[MultipleButton(Name = "action", Argument = "RoleEdit")]
public ActionResult RoleEdit(List<UserRole> userRole)
{
return View();
}

在新扩展中,上面建议的解决方案链接中显示的 MultipleButtonAttribute 被执行,以下代码行始终返回空值:

controllerContext.Controller.ControllerContext.RouteData.Values[Name] = Argument;

谁能帮忙。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com