![](/img/trans.png)
[英]How to redirect to an ASP.net MVC action for url with hash parameter
[英]How to utilize a user-defined url action in asp,net mvc?
我希望為最終用戶提供一種方法,讓他們輸入值“ SmallBuildingCompany”,然后使用該值創建將重定向到信息視圖的自定義URL。 例如,www.app.com / SmallBuildingCompany。 誰能指出一些有關此方面的信息?
到目前為止,我已編輯161024:
我在RouteConfig中添加了它。
RouteTable.Routes.MapRoute(
"Organization",
"O/{uniqueCompanyName}",
new { controller = "Organization", action = "Info" }
並在組織控制器下添加了新的控制器方法和視圖。
public async Task<ActionResult> Info(string uniqueCompanyName)
{
var Org = db.Organizations.Where(u => u.uniqueCompanyName == uniqueCompanyName).FirstOrDefault();
Organization organization = await db.Organizations.FindAsync(Org.OrgId);
return View("Info");
}
您可以通過將URL的SmallBuildingCompany
部分用作用於顯示每個信息視圖的操作的參數來實現此目的。
在Global.asax.cs中設置Route,以提取公司名稱作為參數並將其傳遞給CompanyInfoController的Index操作:
protected void Application_Start() {
// Sample URL: /SmallBuildingCompany
RouteTable.Routes.MapRoute(
"CompanyInfo",
"{uniqueCompanyName}",
new { controller = "CompanyInfo", action = "Index" }
);
}
請注意,此路由可能會破壞默認路由( {controller}/{action}/{id}
),因此,您可能想給“ Info”路由加上前綴:
protected void Application_Start() {
// Sample URL: Info/SmallBuildingCompany
RouteTable.Routes.MapRoute(
"CompanyInfo",
"Info/{uniqueCompanyName}",
new { controller = "CompanyInfo", action = "Index" }
);
}
然后,CompanyInfoController Index操作可以使用uniqueCompanyName
參數從數據庫中檢索信息。
public ActionResult Index(string uniqueCompanyName) {
var company = dbContext.Companies.Single(c => c.UniqueName == uniqueCompanyName);
var infoViewModel = new CompanyInfoViewModel {
UniqueName = company.UniqueName
}
return View("Index", infoViewModel);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.