1
我在我的局部视图中有两个单选按钮组,并且基于两个选项,我必须操作“扩展区域(div)”。要求默认默认单选按钮组为第一个,并显示与其相关的分机区域。问题是何时出现验证错误,我无法保存单选按钮组。由于我在客户端处理它,它会更改为默认值。任何想法如何解决它将不胜感激。MVC 2 - 两个单选按钮组持久状态
感谢, 拉贾
我在我的局部视图中有两个单选按钮组,并且基于两个选项,我必须操作“扩展区域(div)”。要求默认默认单选按钮组为第一个,并显示与其相关的分机区域。问题是何时出现验证错误,我无法保存单选按钮组。由于我在客户端处理它,它会更改为默认值。任何想法如何解决它将不胜感激。MVC 2 - 两个单选按钮组持久状态
感谢, 拉贾
您是否使用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);
}
感谢您的回复Siva :-)。我在控制器上使用ModelState.IsValid,并且返回相同的实体。问题是除了单选按钮组之外,所有其他控件都可以使用(Textboxes,dropdownlist)。 – Raja 2010-09-16 12:27:32
请检查我的更新答案,一次。 – 2010-09-16 12:40:49
如果您仍有问题,请告诉我。 :-) – 2010-09-16 12:55:06