Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建自定义URL以在MVC中进行自定义搜索_C#_Asp.net Mvc_Asp.net Mvc Routing - Fatal编程技术网

C# 创建自定义URL以在MVC中进行自定义搜索

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

如何创建像www.company.com/clientNameA、www.company.com/clientNameB这样的URL,以便我可以使用clientNameA或clientNameB并在MVC中调用操作?

在路由配置中,尝试以下操作:

如上所述,OP正在寻找以下路由表:

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;
    }
}