Вам необходимо изменить маршрут на уровне Controller
для URL-адреса, который вы хотите использовать для работы, и установить для маршрута action
значение "{name}"
. Вот так:
[Route("Store")]
public class StoreController: Controller
{
// GET: /store/name
[Route("{name}")]
public ActionResult Store(string name)
{
// Declare a list of Coupons
List<Coupn> coupnList;
using (ApplicationDbContext db = new ApplicationDbContext())
{
// Get store id
Store storeDTO = db.Store.Where(x => x.Slug == name).FirstOrDefault();
int storeId = storeDTO.StoreID;
ViewBag.TopDesc = storeDTO.TopDesc;
ViewBag.MainDesc = storeDTO.MainDesc;
ViewBag.StoreLogo = storeDTO.StoreLogo;
ViewBag.StoreName = storeDTO.StoreName;
// Init the list
coupnList = db.Coupns.ToArray().Where(x => x.StoreID == storeId).ToList();
// Get Store name
var coupnStore = db.Coupns.Where(x => x.StoreID == storeId).FirstOrDefault();
ViewBag.StoreName = coupnStore.StoreName;
}
// Return view with list
return View(coupnList);
}
}
Если вы работаете с ASP.NET MVC
, обязательно активируйте Маршрутизацию:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: “Default”,
url: “{controller}/{action}/{id}”,
defaults: new { controller = “Home”, action = “Index”, id = UrlParameter.Optional }
);
}
Если вы работаете с .Net Core
:
public void Configure(
IApplicationBuilder app,
IWebHostEnvironment env
)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}