Asp.net mvc MapRouting ASP.Net MVC4-无法生成新URL';s
我的地图布线有问题。我想用数组列表中的名称生成新的URL。我是MVC的新手,正在尝试使用Web应用程序的体验。我想生成新的链接,其中没有行动。我只想要“Localhost/Chat/”+chatName。如果你不明白我的意思,请问我一些问题,我不太擅长解释Asp.net mvc MapRouting ASP.Net MVC4-无法生成新URL';s,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc Routing,我的地图布线有问题。我想用数组列表中的名称生成新的URL。我是MVC的新手,正在尝试使用Web应用程序的体验。我想生成新的链接,其中没有行动。我只想要“Localhost/Chat/”+chatName。如果你不明白我的意思,请问我一些问题,我不太擅长解释 LocalhostHoardeWebService.varShareWS addChatRooms = new LocalhostHoardeWebService.varShareWS(); Array wsR
LocalhostHoardeWebService.varShareWS addChatRooms = new LocalhostHoardeWebService.varShareWS();
Array wsRespnonsAddChatObject = addChatRooms.addAllChatRoomsRoute();
foreach (string chatNameArray in wsRespnonsAddChatObject)
{
string chatName = chatNameArray.ToString();
routes.MapRoute(
name: chatName,
url: "{controller}/{id}",
defaults: new { controller = "Chat", id = chatName }
);
}
你对路线工作原理的误解。您需要指定默认控制器和操作方法,并在操作方法中将
chatName
的值传递给参数。您的路线应该看起来像(一条路线,没有环路)。另外,请确保该路径高于默认路径
routes.MapRoute(
name: "chat",
url: "Chat/{id}",
defaults: new { controller = "Chat", action = Index }
);
在ChatController
public ActionResult Index(string id)
{
// id is the value of chatName
}
将其称为
/Chat/abc
或/Chat/xyz
您需要指定一个操作,而您不/不应该指定id-您只需将其作为参数传递url:“Chat/{id}”,默认值:new{controller=“Chat”,action=“Index”}
它仍然不适用于routes.MapRoute(名称:chatName,url:“Chat/{id}”,默认值:new{controller=“Chat”,action=“Index”});你知道为什么吗?你摆脱了循环(它只是一个路由定义),你有和公共ActionResult索引(string id)ChatController
中的方法?您还应该指定一个名称(比如name:chat
)它可以工作!非常感谢您,问题是我没有正确理解MVC是如何工作的(您可以根据您在URL中键入的内容获取控制器的id)。非常感谢您,先生!