Заполнение и передача сложного объекта из представления MVC2 в действие контроллера - PullRequest
0 голосов
/ 02 июня 2011

У меня есть следующий код в моем представлении MVC2:

<tr class="edit" style="display:none">
    <td>
        <%= Html.DropDownList("drpFields", new SelectList(Model.Fields, "FieldID", "NiceName", whiteout.FieldID)) %>      
    </td>
    <td>
        <%= Html.DropDownList("drpStartTimeh", new SelectList(Model.Hours, whiteout.StartHour.Hour.ToString("0,0")))%>
        <%= Html.DropDownList("drpStartTimem", new SelectList(Model.Minutes, whiteout.StartHour.Minute.ToString("0,0")))%>
        <%= Html.DropDownList("drpStartTimet", new SelectList(Model.AMPM, whiteout.StartHour.Hour > 12 ? "PM" : "AM"))%>
        -
        <%= Html.DropDownList("drpEndTime", new SelectList(Model.Hours, whiteout.EndHour.Hour > 12 ? (whiteout.EndHour.Hour - 12).ToString("0,0") : whiteout.EndHour.Hour.ToString("0,0")))%>
        <%= Html.DropDownList("drpEndTimem", new SelectList(Model.Minutes, whiteout.EndHour.Minute.ToString("0,0")))%>
        <%= Html.DropDownList("drpEndTimet", new SelectList(Model.AMPM, whiteout.EndHour.Hour > 12 ? "PM" : "AM"))%>
    </td>
    <td>
      <%= Html.DropDownList("drprepeat", new SelectList(Model.RepeatList,whiteout.Repeats))%>
    </td>
    <td>
     Active
    </td>
    <td>            
             <a class="icon-button-cancel" href='<%: Url.Action("EditWhiteOut", "Settings", new {Id = whiteout.WhiteoutID}) %>'>
    <img src='<%: Url.Content("~/static/Images/expanded.png") %>' alt="Delete this device" />
</a>
            <a class="icon-button-success" href="#">
            <img src="/static/images/gear.png" alt="Edit this device" /></a>
    </td>
    <td>    
    </td>
</tr>

Я хочу создать объект типа класса Whiteout и заполнить его значениями, выбранными пользователем из выпадающих списков, и отправить в метод действия EditWhiteout установочного контроллера вместо передачи только нового {Id = whiteout.WhiteoutID}. Как я могу это сделать?

Пожалуйста, предложите решение.

Спасибо.

1 Ответ

0 голосов
/ 02 июня 2011

MVC обеспечивает некоторое автоматическое сопоставление значений формы из представления обратно в действие контроллера.Обычно вы используете строго типизированное представление, т. Е. В верхней части страницы у вас будет что-то вроде Control Language="C#" Inherits="System.Web.Mvc.ViewPage<namespace.Whiteout>

Имена выпадающих списков должны совпадать с именами свойств в классе Whiteout и действии контроллера.будет ожидать возвращаемого значения типа модели, т.е.

 [HttpPost]
 public ActionResult EditWhiteout(WhiteOut tseItem)
 { //method body here

Остальное должно произойти, как по волшебству.Если вас не устраивают выпадающие списки, иногда проще заменить их простыми вводами, пока вы не получите работающую часть отправки / получения, а затем перейдите в раскрывающийся список.

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