asp.net mvc framework распространение информации - PullRequest
0 голосов
/ 29 января 2009

У меня есть страница asp, содержащая форму с двумя полями, где клиент должен написать свою информацию.

<td><%=Html.TextBox("Date")%></td>
<td><%=Html.TextBox("City")%></td>

Подпись моего действия выглядит (на данный момент) так:

public ActionResult XXX(string Date, string City) {...}

Проблема в том, что я хочу распространить простое целое число от моего взгляда до действия. Возможно ли иметь скрытое текстовое поле или что-то подобное? Я хочу, чтобы моя подпись действия выглядела примерно так:

public ActionResult CreateCourseDate(string Date, string City, int id) 

Ответы [ 3 ]

3 голосов
/ 29 января 2009

Есть два способа сделать это. Либо используйте метод скрытого поля (я бы не рекомендовал это), либо добавьте его в URL (значение маршрута). Последний лучше соответствует REST-подобным URL, которые предпочитает MVC. Итак, если вы используете новую форму, ваш URL будет выглядеть так:

http://example.com/course/newcoursedate/1

Это отредактирует course с идентификатором 1. У вас будет соответствующее действие create, к которому будет отправлена ​​ваша новая форма. В приведенном ниже примере предполагается, что ваше представление строго типизировано с моделью Course. При необходимости вы также можете извлечь идентификатор из ViewData.

<% using (Html.BeginForm( "CreateCourseDate",
                          "Course",
                          new { id = ViewData.Model.CourseID }, ...

    ...

    <td><%=Html.TextBox("Date")%></td>
    <td><%=Html.TextBox("City")%></td>

<% } %>

Я не смотрел на порядок параметров, но я считаю, что по крайней мере одна подпись имеет значения маршрута после имени контроллера. Проконсультируйтесь с источником (или intellisense), чтобы быть уверенным.

2 голосов
/ 29 января 2009

Вы можете передать дополнительные значения следующим образом:

<%  using (Html.BeginForm("YourActionName", "YourControllerName", new { id = yourid })) { %>
...
<td><%=Html.TextBox("Date")%></td>
<td><%=Html.TextBox("City")%></td>
...
<input type="submit" value="Submit" />
<% } %>
1 голос
/ 29 января 2009

Да, скрытый ввод будет работать для этого. Это должно быть в той же форме, очевидно.

Использовать Html.Hidden.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...