使用单选按钮编辑操作

时间:2013-05-17 21:55:35

标签: asp.net-mvc entity-framework razor

该模型是RatingSource的IEnumerable

public class RatingSource
    {
        public int Id { get; set; }

        public string Source { get; set; }

        public bool IsActive { get; set; }
    }

查看代码:

@foreach (var ratingSource in Model)
 {
     <tr>
        <td>
            @Html.DisplayFor(modelItem => ratingSource.Source)  
        </td>
        <td>
             @Html.RadioButton("Active",ratingSource.Id,ratingSource.IsActive)
        </td>
     </tr>
 }

我没有为IsActive使用EditorForModel,因为它提供了checkBoxes。 如何将编辑的数据保存到DB? 我使用EntityFramework。

1 个答案:

答案 0 :(得分:0)

这就是我能够获取所选的RatingSource

的方法

控制器代码:

    public ViewResult SaveInfo()
    {            
        return View(lstRatingSources);
    }

    [HttpPost]
    public ViewResult SaveInfo()
    {
        var formValue = Request.Form["Active"];
        int Id = Convert.ToInt32(formValue);
        RatingSource selectedRatingResource = 
                     lstRatingSources.FirstOrDefault(p => p.Id == Id);
        return View("AcknowledgementView");
    }

查看代码:

@using (Html.BeginForm())
{
<table>
@foreach (var ratingSource in Model)
{
     <tr>
        <td>
            @Html.DisplayFor(modelItem => ratingSource.Source)  
        </td>
        <td>
             @Html.RadioButton("Active", ratingSource.Id, ratingSource.IsSelected)
        </td>
     </tr>
}
<tr><td><input type="submit" value="Save Info" /></td><td></td></tr>
 </table>
}

请不要问为什么我使用Request.Form["Active"],这是凌晨2点,我没有去查找细节。通过快速观察Request.Form对象来获得它。希望这会对你有所帮助。