Как отобразить значения формы в объект для сценария ASP.NET MVC HTTP-Post? - PullRequest
1 голос
/ 24 марта 2009

У меня есть простая форма для приложения ASP.NET MVC. У меня есть свойство формы, которое по разному (по какой-либо причине) называется реальным именем свойства.

Я знаю, что есть атрибут [Bind(Exlcude="", Include="")], но это не поможет мне в этом случае.

Я также не хочу иметь аргумент (FormsCollection formsCollection) в сигнатуре метода Action.

Есть ли другой способ определить отображение?

например.

<%= Html.ValidationMessage("GameServer", "*")%>  

результаты в ..

<select id="GameServer" name="GameServer">
    <option value="2">PewPew</option>
</select>

это необходимо сопоставить с ..

myGameServer.GameServerId = 2; // PewPew.

ура!

Ответы [ 3 ]

1 голос
/ 25 марта 2009

Что не так с передачей FormCollection в качестве аргумента? Мне пришлось сделать то же самое, что и вы, и я только что исключил свойство GameServer в BindAttribute.

Еще одна вещь, которую вы должны отметить, это то, что Html.ValidationMessage("GameServer", "*") не будет работать, потому что базовая модель не содержит свойство GameServer. Вы должны добавить это к модели. Я не знаю, есть ли лучший способ сделать это, я не нашел, но это было необходимо, чтобы ValidationMessage работает

1 голос
/ 24 марта 2009

Я полагаю, вам нужно будет определить его в аргументах вашего контроллера, иначе он не будет иметь никакого представления о том, что принимать.

public ActionResult GameServer(string GameServer){
    GServer myGameServer = new GServer();
    myGameServer.GameServerId.ToString() = GameServer;
    return View("GameServer");
}

вы можете передать имя / идентификатор параметра, который вы пытаетесь использовать, на странице просмотра, он автоматически узнает значение, которое нужно получить, основываясь на идентификаторе вашего представления.

0 голосов
/ 13 ноября 2009

Вы можете создать свой собственный ModelBinder ( см. ), чтобы выполнить пользовательское отображение.
IMO излишне, но у вас могут быть свои причины ...

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