2013-05-10 55 views
2

我在創建視圖中有一個單選按鈕列表。它在選擇下拉列表時與複選框一起生成。使用mvc3獲取根據數據庫中的值選擇的單選按鈕

@model IEnumerable<Admin.Models.viewmodel> 
@foreach (var item in Model) 
{ 
    <label> 
      @Html.CheckBox("User", item.Selected, new { @id = "User" + item.Value, @value = item.Value }) 
      @item.Text 
    </label> 
    <label> 
     @Html.RadioButton("rdnUser" + item.Value.TrimStart(), 1, item.IsSelected,new { @id = "rdnUser"})Primary     

    </label> 
    <label> 
     @Html.RadioButton("rdnUser" + item.Value.TrimStart(), 2,item.IsSelected, new { @id = "rdnUser"})Secondary 
    </label> 
} 

Iam將單選按鈕的值保存到表UserMapping中的字段UserType。

當我點擊編輯鏈接,我想根據數據庫值選擇的單選按鈕..

創建一個視圖模型採取複選框,並radiobutton.viewpartial視圖模型數值是: -

public class viewpartial : System.Web.Mvc.SelectListItem 
    { 
     public int Values { get; set; } 
     public bool IsSelected { get; set; } 
    } 

查詢是: -

var query = (from u in UserMapping 
           where u.UserID == id && u.Active == 1 
           join f in Financial on u.FinancialID equals f.FinancialID 
           into c 
           from d in c.DefaultIfEmpty() 
           select new viewpartialIFC 
           { 
            Text = d.FiName, 
            Value = SqlFunctions.StringConvert((double)d.FinancialID), 
            Selected = d.FinancialID == u.FinancialID ? true : false, 
            Values = u.UserType, 
            //IsSelected=??? 
           }).Distinct().ToList(); 

我應該在查詢什麼樣的變化得到單選按鈕選擇..

回答

0

這是你可以創建一個用戶列表,並可以選擇它們選擇(複選框),並選擇一個特定的角色(單選按鈕)的方式:

視圖模型:

public class AdminViewModel 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public bool isSelected { get; set; } 
    public int RadioValue { get; set; } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
    var data = GenerateViews(); 

    return View(data); 
    } 

    [HttpPost] 
    public ActionResult Index(IList<AdminViewModel> data) 
    { 
    var selectedViews = data.Where(d => d.isSelected == true); 

    foreach (var selected in selectedViews) 
    { 
     //selected.Id; 
     //selected.RadioValue; 
    } 

    System.Diagnostics.Debugger.Break(); 

    return View(data); 
    } 

    private IList<AdminViewModel> GenerateViews() 
    { 
    var output = new List<AdminViewModel>(); 
    var rand = new Random(); 

    for (var count = 1; count <= 10; ++count) 
    { 
     var newView = new AdminViewModel(); 

     newView.Id = count; 
     newView.Name = "Name " + count.ToString(); 
     newView.isSelected = false; 
     newView.RadioValue = rand.Next(1, 3); 

     output.Add(newView); 
    } 

    return output; 
    } 
} 

查看:

@model IList<WebMVC3.Controllers.AdminViewModel> 

<h2>Index</h2> 

@using (Html.BeginForm()) 
{ 

    //foreach (var item in Model) 
    for(var index = 0; index < Model.Count; ++index) 
    { 
    <div> 
     @Html.HiddenFor(m => Model[index].Id) 
     <label> 
     @Html.CheckBoxFor(m => Model[index].isSelected, Model[index].isSelected) 
     @Model[index].Name 
     </label> 
     <label> 
     @Html.RadioButtonFor(m => Model[index].RadioValue, 1) 
     Primary 
     </label> 
     <label> 
     @Html.RadioButtonFor(m => Model[index].RadioValue, 2) 
     Secondary 
     </label> 
    </div> 
    } 
    <input type="submit" value="Save" /> 
} 
相關問題