Заполнение и передача сложного объекта из представления MVC2 в действие контроллера - PullRequest
0 голосов
/ 01 июня 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

Frist всей ссылки приведет к Get вместо Post.Вам нужно использовать функцию javascript, прикрепленную к гиперссылке, чтобы выполнить POST для действия на контроллере.

<a class="icon-button-cancel" onclick="return SomeFunction(this)" href='<%: Url.Action("EditWhiteOut", "Settings", new {Id = whiteout.WhiteoutID}) %>'>

function SomeFunction(obj)
{

 document.forms[0].action = obj.href;
 document.forms[0].submit();
 return false;
}

, также сохраните whiteout.whiteoutID в скрытом поле.* {Ваш код здесь.}

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