gpt4 book ai didi

ASP.NET - ActionResult 参数在传递字符串时总是返回 null - 为什么?

转载 作者:行者123 更新时间:2023-12-04 04:43:24 28 4
gpt4 key购买 nike

我刚开始使用 ASP.NET MVC 项目类型的第一个项目,我正在创建一个详细信息页面,而不是传递模板化(int id),我想传递一个字符串。但是当我处于 Debug模式并在 URL 中输入它时,“myString”为空。为什么这样?我是否必须在其他地方更改任何其他内容?

因此,如果我转到 URL 并输入以下内容:

http://localhost:2345/Bank/EmployeeDetails/3d34xyz

public ActionResult EmployeeDetails(string myString) // myString is null
{
return View();
}

最佳答案

在你Global.asax.cs文件,您将默认映射以下路由:

routes.mapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });

这意味着像 http://localhost:2345/Bank/EmployeeDetails/3d34xyz 这样的 url会去 Bank Controller , EmployeeDetails操作并传递值 3d34xyz进入一个名为 id 的参数.传递一个字符串是完全可以的,但为了让它工作,你有两个选择:

1) 将变量重命名为 id在您的操作方法中。
public ActionResult EmployeeDetails(string id) { ... }

2)添加另一个与您想要的字符串名称匹配的路由。确保使其比默认路由更具体,并将其放置在 Global.asax.cs 中的默认路由之前。文件。
routes.mapRoute(
"BankEmployeeDetails"
"Bank/EmployeeDetails/{myString}"
new { controller = "Bank", action = "EmployeeDetails", myString = UrlParameter.Optional });

这将传递默认值 nullmyString如果 url 中没有传递任何值,但使用您指定的 url,您将传递值 3d34xyz .

关于ASP.NET - ActionResult 参数在传递字符串时总是返回 null - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849624/

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