Параметр ASP.NET MVC POST в RouteData - PullRequest
1 голос
/ 31 марта 2010

Я использую jQuery, чтобы ПОСТАВИТЬ Id для моего маршрута, например:
http://localhost:1234/Load/Delete
с параметром POST Id = 1

Я сейчас использую только маршрут по умолчанию в Global.asax.cs:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

Когда я выполняю POST, в моем ActionFilter filterContext.RouteData.Values["Id"] устанавливается значение по умолчанию "". В идеале мне бы хотелось, чтобы оно автоматически использовало значение параметра POST, если URL-адрес соответствует "". Я знаю, что это отправка должным образом, потому что я вижу значение "1" в filterContext.HttpContext.Request.Params["Id"].

Есть ли способ заставить RouteData использовать параметр POST в качестве запасного значения?

1 Ответ

1 голос
/ 31 марта 2010

Вы всегда можете добавить другой маршрут, который не использует этот параметр. У меня есть пример в моей книге ASP.Net MVC дома. Я обновлю это, когда вернусь домой:)

Но я бы предложил переименовать id в ObjectId для ясности, либо в маршруте, либо в вызывающем jquery.

Не удалось найти ссылку, но, судя по всему, лучше всего изменить имя идентификатора в объекте. В большинстве статей ASP.Net MVC предлагается использовать ConferenceId, PersonId и т. Д.

...