gpt4 book ai didi

c# - 将字符串从 View 传递给 Controller ​​/操作

转载 作者:行者123 更新时间:2023-11-30 21:52:44 25 4
gpt4 key购买 nike

我试图通过单击我 View 中的链接来降低用户的角色。

当我单击链接时,它不会转到操作,但它只会给出 404 错误并将未找到的资源链接到我试图传递给操作的字符串(称为“字符串参数” )

在这种情况下,链接是/Admin/Disable/stringparameter

我想我没有使用正确的重载,所以有人可以帮助我吗?谢谢

这是 AdminController 中的操作

 [HttpPost]
public ActionResult Disable(string id)
{
Role rol = new UserRepository().GetRole("Disabled");
new UserRepository().UpdateUser(id,rol.RoleId);
return RedirectToAction("Users");
}

这是 View 模型

public class UserSuperUserPM
{
public UserClass User { get; set; }
public List<UserClass> Users { get; set; }

public UserClass SuperUser { get; set; }
public List<UserClass> SuperUsers { get; set; }

public UserClass Disabled { get; set; }
public List<UserClass> Disableds { get; set; }

public UserClass Inactive { get; set; }
public List<UserClass> Inactives { get; set; }
}

这是用户类

public class UserClass
{
public string UserId { get; set; }
public string Username { get; set; }
public string Role { get; set; }
}

这是 View ( View 中 4 个相似表中的 1 个)

@foreach (var item in Model.Users)
{
<tr>
<td class="col-md-4">
@Html.DisplayFor(modelItem => item.Username, Model.Users)
</td>
<td class="col-md-4">
@Html.DisplayFor(modelItem => item.Role, Model.Users)
</td>
<td calss="col-md-4">
--------Commented attempted links(none of them work correct)
@*@Html.ActionLink("Disable", "Disable", new { Controller = "Admin", action = "Disable", id = item.UserId })*@
@*<a href="~/Controllers/AdminController/Disable?id=@item.UserId">Disable</a>*@
@*@Html.ActionLink("Disable","Admin", new { id = item.UserId },null)*@
@*@Html.ActionLink("Disable", "Disable","Admin", item.UserId)*@

-------original attempted link
@Html.ActionLink("Disable", "Disable", new { id = item.UserId})




</td>
</tr>
}

最佳答案

这是因为 a 元素中的 href attr 只是做 GET 而不是 POST,所以改变它的工作原理行动:

[HttpGet]
public ActionResult Disable(string id)
{
Role rol = new UserRepository().GetRole("Disabled");
new UserRepository().UpdateUser(id,rol.RoleId);
return RedirectToAction("Users");
}

但我建议你用 JS 来做。

关于c# - 将字符串从 View 传递给 Controller ​​/操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538572/

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