Как отправить и получить в контроллере - PullRequest
1 голос
/ 02 апреля 2010

У меня есть следующий код, но я вижу, что у меня нет значений в контроллере. Что случилось? По моему мнению,

<%
    using (Html.BeginForm())
    {%>
       <%=Html.TextBox("Addresses[0].Line1") %>
       <%=Html.TextBox("Addresses[0].Line2")%>
       <%=Html.TextBox("Addresses[1].Line1")%>
       <%=Html.TextBox("Addresses[1].Line2")%>

        <input type="submit" name="submitForm" value="Save products" />
        <%
    }
%>

Мои занятия следующие:

public class Customer
{
    public string FirstName { get; set; }
    public string Lastname { get; set; }
    public List<Address> Addresses { get; set; }
    public Customer()
    {
        Addresses = new List<Address>();
    }
}

public class Address
{
    public int Line1 { get; set; }
    public int Line2 { get; set; }
}

Мой контроллер выглядит следующим образом:

public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(Customer customer)
    {
        return View();
    }

Ответы [ 2 ]

0 голосов
/ 02 апреля 2010

Убедитесь, что ваш вид привязан к модели клиента.

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

Наконец, если ничего из вышеперечисленного не поможет, измените параметр в вашем действии Index следующим образом:

public ActionResult Index(FormCollection form)

тогда вы можете использовать отладчик для проверки переданного объекта FormCollection, чтобы точно узнать, что посылает вам представление.

0 голосов
/ 02 апреля 2010

Параметр для вашего ActionResult имеет имя customer, поэтому механизм связывания моделей по умолчанию будет искать это имя в форме по умолчанию. Я полагаю, что если вы измените свой код следующим образом, он должен его забрать:

   <%=Html.TextBox("customer.Addresses[0].Line1") %>
   <%=Html.TextBox("customer.Addresses[0].Line2")%>
   <%=Html.TextBox("customer.Addresses[1].Line1")%>
   <%=Html.TextBox("customer.Addresses[1].Line2")%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...