Я пытаюсь использовать эту структуру RestfulRouting мы на месте ... 3-я рамочная партии здесь: http://stevehodgkiss.github.com/restful-routing/
RestfulRouting Routing Library для MVC - Проблемы с маршрутами - Weirdness
Я не могу понять, для жизнь меня, почему я получаю список маршрутов, которые просто не кажутся такими, какие я ожидал бы. Я прочитал эту документацию на одну страницу (что для меня хорошо, но не хватает), и все же я получаю генерируемые маршруты, которые, кажется, выходят из ниоткуда для определенных действий, которые я сделал или не определил.
Например, вот одна установка I:
Маршруты общественного класса: RouteSet { государственной статической силы Start() { вар перенаправляет = RouteTable.Routes; routes.MapRoutes(); }
public override void Map(IMapper map)
{
map.Resources<CarController>(cars =>
{
cars.As("Cars");
cars.Collection(x =>
{
//x.Get("Edit");
x.Post("Update");
x.Get("Delete");
});
});
}
Мой контроллер для автомобилей выглядит следующим образом (скелет/вид сверху на уровне Я даю вам здесь):
using System.Web.Mvc;
namespace OurCompanyName.Web.Controllers.WebApp
{
public class CarController : Controller
{
public ActionResult Index(string carId)
{
// logic
}
public ActionResult Edit(int id)
{
// logic
}
[HttpPost]
public ActionResult Update(FormCollection formCollection, int id = 0)
{
// logic
}
public ActionResult CarTypes()
{
// logic
}
public ActionResult New()
{
// logic
}
public ActionResult Delete(int id)
{
// logic
}
}
}
Но когда я посмотрите на инструмент отладки этой рамки (то есть http://localhost/routedebug) на моей машине или нашем сервере-разработчике, это выплевывает некоторые странности, и вот маршруты, которые генерируются, когда я смотрю т их с помощью инструмента отладки:
Так где же все эти дубликаты (например, удаление и обновление показывает 2 различных способа/статей) и где и как же стать Автомобили/{ID}/Изменить путь генерироваться здесь из этой рамки?
В конечном счете, я хотел бы также иметь Автомобили/{id}/Удалить, но я не могу настроить эту настройку независимо от того, что я пытаюсь использовать в этой структуре.
Я не понимаю, куда входят имя и конечная точка ... что это такое? Когда я использовал MVC, он заботится только о маршрутах, которые я настроил, а не о некоторых [name] # [name]. Я понимаю, что это, вероятно, принадлежит этой структуре, но я не могу найти документацию по этому поводу и почему она выплескивает кучу маршрутов по умолчанию, которые я даже не буду использовать или использовать в этом соглашении.
, например, у меня нет необходимости использовать эти маршруты/соглашения, что эта вещь генерироваться:
219 POST Автомобили Автомобили # создать
для меня, я бы, наверное, хотите увидеть Автомобили/Создать/{идентификатор } или Автомобили/{id}/Создать. Если вы собираетесь с RESTful конвенцией IMO, это должно быть Cars/Create/{id}, где {id} находится в конце ... но это другая тема или наблюдение за пределами моего вопроса здесь ... и пока я собираюсь с стандартом команды, который должен выполнять Controller/{id}/Action, если имеется идентификатор.
Реферат: В конечном счете, я спрашиваю, как это работает, а во-вторых, как я могу получить мой автомобиль/{id}/Удалить маршрут, установленный здесь с этой структурой?
Да, я получаю все, что от простого рассмотрения. Но как мы получили/Controller/{id}/action там для редактирования? Я не вижу никаких обычных маршрутов mvc, определенных или любых в вашей структуре. Он должен откуда-то приехать. Также как не работает контроллер/действие/{id}? Мне кажется, что это будет http://wekeroad.com/2007/12/06/aspnet-mvc-using-restful-architecture/ – PositiveGuy
И я пробовал x.Get («Удалить») и неважно что я делаю (украшайте действие delete с помощью HttpPost или HttpDelete или вообще не атрибутом Http, оно не попадает в него). И снова мы хотим Controller/{id}/Delete или Controller/Delete/{id}, так почему бы ваша инфраструктура не поддерживала такое обычное использование в MVC? Я не понимаю. – PositiveGuy
так что это. Член по сравнению с .Collection? Мы используем все .Collection из вашей структуры. Я абсолютно ничего не вижу на наших маршрутах, используя вашу фреймворк, и каким-то образом мы все еще можем заставить Controller/{id}/Edit, например, отображаться в вашем инструменте маршрута. Опять же, мы не используем маршрутизацию MVC из коробки, так как это генерируется из вашей структуры? – PositiveGuy