2010-09-16 33 views
1

我在我的局部视图中有两个单选按钮组,并且基于两个选项,我必须操作“扩展区域(div)”。要求默认默认单选按钮组为第一个,并显示与其相关的分机区域。问题是何时出现验证错误,我无法保存单选按钮组。由于我在客户端处理它,它会更改为默认值。任何想法如何解决它将不胜感激。MVC 2 - 两个单选按钮组持久状态

感谢, 拉贾

回答

1

您是否使用MVC的ValidationMessage帮手验证客户端或控制器验证?如果您在控制器上发布页面并使用ModelState.IsValid进行验证,请确保您使用相同的实体返回View。 如果您在客户端进行验证,您是否可以为单选按钮发布一些示例HTML代码?

您是否使用JQuery/Javascript在客户端设置document.ready(...)或load(...)上的默认单选按钮设置?否则,我进行了测试以下,这是正常,并且单选按钮状态坚持:

型号:

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); 
    } 
+0

感谢您的回复Siva :-)。我在控制器上使用ModelState.IsValid,并且返回相同的实体。问题是除了单选按钮组之外,所有其他控件都可以使用(Textboxes,dropdownlist)。 – Raja 2010-09-16 12:27:32

+0

请检查我的更新答案,一次。 – 2010-09-16 12:40:49

+0

如果您仍有问题,请告诉我。 :-) – 2010-09-16 12:55:06