Шаблон проектирования MVC не предназначен для переписывания URL-адресов для указания на структуры папок. Это может сделать это, но это, конечно, не его главная цель. Если вы пытаетесь создать структуру URL со статическим содержимым, может быть проще использовать перезапись URL , встроенную в IIS.
Если вы создаете полноценное приложение MVC, настройте FoodController
и DrinkController
для обслуживания ваших представлений, например:
public class FoodController : Controller
{
public ActionResult ViewDishByTag(string itemType, string itemTag)
{
// If an itemType is displayed without itemTag, return an 'index' list of possible dishes...
// Alternatively, either return a "static" view of your page, e.g.
if (itemTag== "pad-thai")
return View("PadThai"); // where PadThai is a view in your shared views folder
// Alternatively, look up the dish information in a database and bind return it to the view
return ("RecipeView", myRepo.GetDishByTag(itemTag));
}
}
Используя приведенный выше пример, ваш маршрут может выглядеть примерно так:
routes.MapRoute(
"myRoute",
"{controller}/{itemType}/{itemTag}",
new
{
controller = UrlParameter.Required,
action = "ViewDishByTag",
itemtype = UrlParameter.Optional,
itemTag = UrlParameter.Optional
}
);
В вашем вопросе нет подробной информации о вашей реализации, поэтому, если вы хотите, чтобы я что-то рассказал, обновите ваш вопрос.