2011-01-11 2 views
0

У меня есть форма, которая возвращает данные на одну и ту же страницу. Форме должен быть присвоен HTML-код, чтобы моя проверка JQuery работала правильно.MVC, Формы и параметры текущего маршрута/ID

В настоящее время, если вы хотите добавить такой идентификатор, вы должны добавить груз других вещей первым, например, имя контроллера и имя действия и т.д. (который, кажется, немного мусора мне)

<% using (Html.BeginForm("addcredits", "customer", FormMethod.Post, new { id = "addcreditform" })) 

Теперь мой Текущая страница - /customers/addcredits/1, поэтому мне нужно как-то получить параметр «1» в моей форме - как мне это сделать без какого-либо взлома? Я понимаю, что это должен быть параметр после "customer", но я не уверен, что лучший способ получить эти данные.

ответ

0

Ваш контроллер должен передать данные в Вид.

Поскольку вы хотите только один целочисленный быть переданы View, то View страница должна иметь этот наследовать в определении страницы:

Inherits="System.Web.Mvc.ViewPage<int>" 

А для отображения целого числа где-то на странице, например, в вашем формы, вы бы сделали следующее:

<%= Model %> 

Модель - это объект, который был передан в Вид и имеет тип int.

На контроллере вы должны сделать следующее, когда вы пост:

public ActionResult addcredits(int? id) 
{ 
    // Some post logic 
    return View(id.Value); 
} 

Voila! Параметр id - это число. Я передаю его назад.

+1

И BTW, вам не нужно использовать Html.BeginForm, вы могли бы просто написать форму HTML самостоятельно. – raRaRa

+0

ROFL - Я все время забываю о том, что бред! – Chris

Смежные вопросы