我使用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
}
}