MVC 2 - два переключателя группы сохраняют состояние - PullRequest
1 голос
/ 16 сентября 2010

У меня есть две группы переключателей в моем частичном представлении, и на основании выбора из двух я должен манипулировать «областью расширения (div)». Требуется, чтобы группы переключателей по умолчанию были первыми по умолчанию и показывали относящуюся к нему зону расширения. Проблема в том, что при ошибке проверки я не могу сохранить группы переключателей. Он меняется на значение по умолчанию, так как я обрабатываю его на стороне клиента. Любые идеи о том, как это исправить, будут высоко оценены.

Спасибо, Радж

1 Ответ

1 голос
/ 16 сентября 2010

Проверяете ли вы на стороне клиента с помощью помощника ValidationMessage MVC или проверяете в контроллере?Если вы публикуете страницу и проверяете ее с помощью ModelState.IsValid на контроллере, убедитесь, что вы возвращаете View с той же сущностью.Если вы выполняете проверку на стороне клиента, можете ли вы просто опубликовать пример HTML-кода для переключателей?

Вы устанавливаете параметр переключателя по умолчанию для document.ready (...) или загружаете (...) на стороне клиента, используя JQuery / Javascript?В противном случае я проверил следующее: оно работает нормально и состояние переключателя сохраняется:

Модель:

 public class MyModel
    {
        [Required(ErrorMessage="Name is required")]
        public string Name { get; set; }
        public bool IsSelected { get; set; }
    }

Просмотр:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<TestSample.Models.MyModel>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%Html.BeginForm(); %>
<%Html.EnableClientValidation(); %>
        <p>
        <%=Html.RadioButtonFor(m=>m.IsSelected,"true") %>
        <%=Html.RadioButtonFor(m=>m.IsSelected,"false") %>
        <%=Html.TextBoxFor(m => m.Name) %>
        <%=Html.ValidationMessageFor(m => m.Name, "Required") %>
        <input type="submit" id="btnSubmit" name="name" value="Submit" />
        </p>
<%Html.EndForm(); %>
    <script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
      </asp:Content>

Контроллер:

[HttpPost]
public ActionResult Index(MyModel model)
  {
       if (ModelState.IsValid)
       {//Your code goes here }
       return View(model);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...