C# 创建自定义URL以在MVC中进行自定义搜索
如何创建像www.company.com/clientNameA、www.company.com/clientNameB这样的URL,以便我可以使用clientNameA或clientNameB并在MVC中调用操作?在路由配置中,尝试以下操作: 如上所述,OP正在寻找以下路由表:C# 创建自定义URL以在MVC中进行自定义搜索,c#,asp.net-mvc,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc Routing,如何创建像www.company.com/clientNameA、www.company.com/clientNameB这样的URL,以便我可以使用clientNameA或clientNameB并在MVC中调用操作?在路由配置中,尝试以下操作: 如上所述,OP正在寻找以下路由表: routes.MapRoute( name: "Brand", url: "{id}", defaults: new { c
routes.MapRoute(
name: "Brand",
url: "{id}",
defaults: new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional
});
具有单独控制器/操作的备选方案:
路由表
并添加一个控制器:
控制器
您好,谢谢,我有默认的路由“url:{controller}/{action}/{id}”,这不会冲突吗?是的,但似乎您想破坏{controller}/{action}逻辑。您可以指定特定控制器的工作方式:创建一个专用控制器并将路由添加到默认值之上(路由映射项取决于它们的添加顺序),以及如何构建该操作?索引(字符串id)?“我得到了找不到的资源。@Patrick:我更新了一点代码,虽然您将丢失默认主页(主页/索引)路由,但这应该可以工作。@Patrick:好的,我手动添加了默认主页路由,现在应该可以了。”。
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Home",
url: "",
defaults: new { controller = "Home", action = "Index"
});
routes.MapRoute(
name: "Foo",
url: "{client}",
defaults: new {
controller = "Foo",
action = "YourAction",
client = UrlParameter.Optional
});
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional
});
public class FooController : Controller
{
//
// GET: /Foo/
public ActionResult YourAction(string client)
{
return null;
}
}