Проблема с привязкой модели - PullRequest
0 голосов
/ 20 августа 2011

Используя Asp.net MVC, у меня есть одно представление, которое строго привязано к «Списку», и цикл для частичного рендеринга частичного представления, как показано ниже

<%
      foreach (var option in Model.Options)
      {
%>
      <p/>

   <%=Html.RadioButton(option.QuestionId.ToString(), (option.IsSelected) )%> &nbsp;<%= option.OptionBody%>
<%
      }
  }
%>

Сделайте сообщение обратно в главном представлении следующим образом

 <% Html.BeginForm("Submit", "Questionnaire", FormMethod.Post); %> 
 <input type="submit" name="submit" value="submit" />
 <% Html.EndForm(); %>

Наконец-то у моего контроллера

 [AcceptVerbs(HttpVerbs.Post)] 
 public ActionResult Submit(List<Question> test)
 {
     var x = test;
     return View("Submit");
 }

Моя форма

<% Html.BeginForm(); %>
<%:"UserName : "%>

<%=ViewData["UserName"]%>
<%=Html.TextBox("test",ViewData["tt"])%>
<p />
<%:"Phone Number :"%>

<%=ViewData["PhoneNumber"]%>
<p />
<%
      foreach (var q in Model)
      {
          Html.RenderPartial("Question", q);
      }
%>


<% Html.EndForm(); %>

 <% Html.BeginForm("Submit", "Questionnaire", FormMethod.Post); %>
 <% TempData["form"] = ViewData;%>
 <input type="submit" name="submit" value="submit" />
<% Html.EndForm(); %>

и когда я включаю все в одну начальную форму, отправка сообщения не запускается "

Мой вопрос: почему х всегда равен нулю? И как я могу получить свою обновленную модель (имея выбор пользователя на радиокнопка отображается при частичном просмотре) Должен ли я использовать TempData для хранения моего значения? и как?

После получения нужной обновленной модели я сохраню ее в БД. Спасибо!

1 Ответ

3 голосов
/ 20 августа 2011
 <% Html.BeginForm("Submit", "Questionnaire", FormMethod.Post); %> 
 <input type="submit" name="submit" value="submit" />
 <% Html.EndForm(); %>

Мне кажется, что ваша форма содержит только один input внутри. Вам нужно визуализировать ваши редакторы внутри формы, иначе они не будут включены как часть POST.

Обновление

Итак, теперь у вас есть две формы: одна содержит входные данные, которые вы хотите отправить, а другая - фактическую кнопку. Проблема заключается в том, что нажатие кнопки «Отправить» на второй отправит только вторую (практически пустую) форму. Почему бы не объединить ваши формы?

<% Html.BeginForm("Submit", "Questionnaire", FormMethod.Post); %>
<%=ViewData["UserName"]%>
<%=Html.TextBox("test",ViewData["tt"])%>
<p />
<%:"Phone Number :"%>

<%=ViewData["PhoneNumber"]%>
<p />
<%
    foreach (var q in Model)
    {
        Html.RenderPartial("Question", q);
    }
%>
<input type="submit" name="submit" value="submit" />
<% Html.EndForm(); %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...