gpt4 book ai didi

asp.net-mvc - 如何使用@Html.ActionLink 将电子邮件 ID 作为参数传递给操作方法?

转载 作者:行者123 更新时间:2023-12-01 02:03:58 24 4
gpt4 key购买 nike

Index.chtml 页面本身我有这个链接

@Html.ActionLink("Edit","EditUserProfile",new {vchUserID = item.vchUserID})

内部用户 Controller 本身

// GET: /User/ViewUserProfile/1
public ActionResult EditUserProfile(string userID = "abdul@kareems.com")
{
LIVE_USER objUserFind = db.LIVE_USER.Find(userID);

if (objUserFind == null)
{
return HttpNotFound();
}

return View(objUserFind);

}

//
//POST: /Admin/EditAdminProfile/1
[HttpPost]
public ActionResult EditUserProfile(LIVE_USER objUserFind)
{
if (ModelState.IsValid)
{
db.Entry(objUserFind).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(objUserFind);
}

RouteConfig.cs 文件本身我的 url 结构如下所示

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{vchUserID}",
defaults: new { controller = "Admin", action = "Index", vchUserID = UrlParameter.Optional /*kareem removed vchUserID = UrlParameter.Optional*/ }
);

我得到的结果是:*HTTP 错误 404.0 - 未找到您要查找的资源已被删除、更名或暂时不可用。*

最佳答案

Controller 方法中的参数名称需要与路由中定义的参数名称相匹配。目前,该参数在路由中名为 vchUserID,但在您的 Controller 方法中,您已将其命名为 userId

这意味着 Controller 方法永远不会从 Url 中获取值,您将始终获取默认值“abdul@hibrise.com”。 (我猜那不是您的实时用户之一,所以您返回的是 HttpNotFound 结果)

尝试重命名 Controller 方法中的参数,如下所示:

public ActionResult EditUserProfile(string vchUserID = "abdul@hibrise.com")
{
...
}

关于asp.net-mvc - 如何使用@Html.ActionLink 将电子邮件 ID 作为参数传递给操作方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20835482/

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