[英]Load data in view based on ID in url (asp.net mvc)
我一直在尋找一種基於URL中的ID或名稱從數據庫加載不同數據的方法。
例如:
這是視圖的鏈接:
http://localhost:50830/CreateSale/Order
現在我想要這樣的東西:
http://localhost:50830/CreateSale/Order/5
OR
http://localhost:50830/CreateSale/Order/Cookies
然后,基於ID(5)或名稱(Cookies),控制器CreateSale將在“訂單”視圖中加載鏈接到ID /名稱的數據。 每個ID /名稱的此數據都將不同。
編輯
因此,基本上我想要的是一種創建類似於我所展示的URL的方法。 因此,當我在瀏覽器中鍵入鏈接時,取決於最后一部分(5或Cookie),它應該在頁面上顯示所需的數據。
例如:
如果鏈接是:
http://localhost:50830/CreateSale/Order/Cookies
然后,我想在頁面上查看有關訂購Cookie的數據。
當鏈接是:
http://localhost:50830/CreateSale/Order/Toys
然后,我想在頁面上查看有關訂購玩具的數據。
在asp.net mvc4中有什么方法可以做到這一點?
謝謝!
對於默認路由,這應該可以立即使用。 在控制器方法上,讀取Id並將其傳遞給從數據庫讀取的方法,然后將結果傳遞回視圖。
public ActionResult Order(string id)
{
var data = DbLoader.Execute(id);
return View(data);
}
在您的視圖上,讀取傳遞給它的數據。 例如在Index.cshtml中。
@foreach (var dataItem in Model)
{
//Display something
}
假設您沒有“ CreateSale / Orders”的自定義路由,並且使用的是默認路由:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
如果您確實有一個針對“ / CreateSale / Order”的自定義路由,請確保該網址以“ / {id}”結尾,就像默認路由一樣。
編輯
要生成URL,請在視圖或控制器中使用Url.Action方法。 例如
@Url.Action("Order", "CreateSale", new RouteValueDictionary { { "id","5" } }, Request.Url.Scheme, Request.Url.Host) //generates http://localhost:50830/CreateSale/Order/5
@Url.Action("Order", "CreateSale", new RouteValueDictionary { { "id","Cookies" } }, Request.Url.Scheme, Request.Url.Host) //generates http://localhost:50830/CreateSale/Order/Cookies
@Url.Action("Order", "CreateSale", new RouteValueDictionary { { "id","Toys" } }, Request.Url.Scheme, Request.Url.Host) //generates http://localhost/CreateSale/Order/Toys
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.