Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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# 是否接受两个同名参数?_C#_Asp.net Mvc 4_Parameters_Guid - Fatal编程技术网

C# 是否接受两个同名参数?

C# 是否接受两个同名参数?,c#,asp.net-mvc-4,parameters,guid,C#,Asp.net Mvc 4,Parameters,Guid,我现在有这个密码了 public ActionResult Index(Guid? id, string alias) { var room = db.Rooms.FirstOrDefault(r => r.RoomLink == id || r.Alias == alias); if (room != null) { //some code with room... } } 我的目标是在我的操作中接受两种url(参数) 串 www.exampl

我现在有这个密码了

public ActionResult Index(Guid? id, string alias)
{
    var room = db.Rooms.FirstOrDefault(r => r.RoomLink == id || r.Alias == alias);

    if (room != null)
    {
    //some code with room...
    }
}
我的目标是在我的操作中接受两种url(参数)

www.example.com/Rooms/Aliasstring
指南

我在路由中有
id
,所以别名总是空的

如果我可以这样做就好了(如果参数是Guid或参数是字符串或两者都为Null)

但是我不能有两个
id
作为参数

路线

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我的模型

public Guid RoomLink { get; set; }
public string Alias { get; set; }

您可以通过简单地检查输入参数来避免路由问题

public ActionResult Index(string input)
{
    Guid guidOutput;
    bool isId = Guid.TryParse(input, out guidOutput);
    bool isAlias = !isId;

   var room = isId ?
              db.Rooms.FirstOrDefault(r => r.RoomLink == input) :
              db.Rooms.FirstOrDefault(r => r.Alias == input);

}

您可以通过简单地检查输入参数来避免路由问题

public ActionResult Index(string input)
{
    Guid guidOutput;
    bool isId = Guid.TryParse(input, out guidOutput);
    bool isAlias = !isId;

   var room = isId ?
              db.Rooms.FirstOrDefault(r => r.RoomLink == input) :
              db.Rooms.FirstOrDefault(r => r.Alias == input);

}
public ActionResult Index(string input)
{
    Guid guidOutput;
    bool isId = Guid.TryParse(input, out guidOutput);
    bool isAlias = !isId;

   var room = isId ?
              db.Rooms.FirstOrDefault(r => r.RoomLink == input) :
              db.Rooms.FirstOrDefault(r => r.Alias == input);

}