2010-09-16 29 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