MVC路由2参数在文件名



我使用MVC 5,我有这个url:

/Joes-studio-essex

这是两个独立的参数{business}-{county}

Q1)我怎么写一个路由来分割这个??

Q2)有谁能想到一个方法来处理这个url '/joe -studio-west-yorkshire',这里的郡是'west-yorkshire' ?

谢谢

MVC没有办法确定如何分割字符串,所以你必须自己做。创建一个签名如下的动作方法:

public ActionResult Index(string businessAndCounty)
{
}
在函数内部,您可以手动分割字符串。请注意,这是完全未经测试的,实际上是伪代码,因此需要修复和添加大量错误处理:
string[] parts = businessAndCounty.Split('-');
int index = 0;
string business = parts[index];
while(!BusinessExists(business) && index < parts.Count)
{
    index++;
    business = string.Format("{0}-{1}", business, parts[index]);
}
string county = string.Join(parts.Skip(index), "-");
return BusinessAndCounty(business, county);

现在你的控制器看起来是这样的:

public class HomeController
{
    public ActionResult Index(string businessAndCounty)
    {
        string[] parts = businessAndCounty.Split('-');
        int index = 0;
        string business = parts[index];
        while(!BusinessExists(business) && index < parts.Count)
        {
            index++;
            business = string.Format("{0}-{1}", business, parts[index]);
        }
        string county = string.Join(parts.Skip(index), "-");
        return BusinessAndCounty(business, county);
    }
    private bool BusinessExists(string business)
    {
        //Your logic to determine if the business exists
    }
    private ActionResult BusinessAndCount(string business, string county)
    {
        //your logic here
    }
}

最新更新