如何在MVC中获取编辑值

时间:2013-07-22 06:11:30

标签: c# asp.net-mvc

我是MVC 1中的新人。

在我的项目中,我将IList分配给模型并使用forloop即时分配给Textbox,dropdox等......用户可以根据需要更改值。我想要的是,当用户点击页面顶部的SAVE ALL按钮时,我将如何以ILIST的形式获得aspx页面上的值。

这是我用来填充表单的代码....

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
                       <% using (Html.BeginForm("MyController", "EditCopyRestaurantMealRate", FormMethod.Post, new { id = "frmEditCopyRestaurantMealRate" }))
{ %>

<%= Html.Submit("Save All Services", ApplicationPermissions.ManageContract, new { name = "submitButton" })%>

<table width="100%" class="edit_restaurant_form">
<col width="19%" />
<col width="30%" />
<col width="19%" />
<col width="*" />
  foreach (var item in Model)
    {       
%>
<tr> 
        <th>
            <label for="DateFrom">
                Effective from:</label>&nbsp;<label class="mandatory">*&nbsp;</label>
        </th>
        <td>
            <% string dtFrom = "";

               dtFrom = item.Datefrom.ToString("dd-MMM-yyyy");
            %>
            <%= Html.TextBox("DateFrom", dtFrom)%>
        </td>
        <th>
            <label for="DateTo">
                Effective to:</label>&nbsp;<label class="mandatory">*&nbsp;</label>
        </th>
        <td>
            <% string dtTo = "";
               dtTo = item.Dateto.ToString("dd-MMM-yyyy");
            %>
            <%= Html.TextBox("DateTo", dtTo)%>
        </td>
    </tr>
<%  }      
%>

这是控制器代码。

public ActionResult MyController(string submitButton, IList<CMS.Model.VcmsRestaurant> AddendumMealRates)
{
    // Need to receiv all value in list which is edited

    return View(@"~\index.aspx", AddendumMealRates);
}

我将如何获得用户将在页面上编辑的MyController中的值?

2 个答案:

答案 0 :(得分:0)

您在控制器中创建一个方法来捕获回发。

如果是简单数据,您可以执行以下操作:

public ActionResult EditRestaurant(string dateFrom, string dateTo)
{
    // do something with the values here.
}

或者创建一个可以封装更复杂数据的viewmodel:

public ActionResult EditRestaurant(EditRestaurantViewModel editRestaurantVM)
{
    // do something with the values here.
}

正如我可以看到你试图回复一个项目列表,在表格中,我将这个添加到我的答案中:

据我所知,您无法轻松发布该数据结构,您需要使用像Knockout.js这样的javascript库,或者使用原始javascript / jquery来收集数据,然后发送它由AJAX回来。

答案 1 :(得分:0)

我在这里找到了ans。

public ActionResult EditRestaurant(IList<string> dateFrom, IList<string> dateTo)
{
// do something with the values here.
}