MVC视图和视图模型单选按钮组



在MVC5+视图中定义一组单选按钮的最优雅的方式是什么?

假设我有一个这样的视图模型

public class ViewModel
{
    public bool Value1 {get;set;}
    public bool Value2 {get;set;}
}

我想在MVC5+视图上渲染这个,所以它是Value1还是Value2?在WebForms中,我将它们放在一行,并为它们定义一个通用的GroupName属性,而在普通HTML中,我将创建一对输入type=单选,并为它们提供一个通用的"name"属性。使用属性/数据注释在MVC中做到这一点的最佳方法是什么?

谢谢

最好在视图模型类中引用一个类,例如"Employee"。然后将视图模型分配给视图,在视图中可以引用视图模型中的任何类。

下面的例子会给你两个单选按钮,分别为你的问题的"性别"属性选择男性或女性。如果你的问题是"你的性别是什么?"然后用户选择男性或女性。然后在控制器中,您可以询问用户选择的值。

你的ViewModel类应该是这样:

public class ViewModel
{
    public Employee Employee {get;set;}
}

你的Employee类应该是:

public class Employee
{
    public string Gender {get; set;}
}

你的控制器应该是这样的:

using GenderApplication.Models;
public ActionResult Create()
    {
        return View();
    }
[HttpPost]
public ActionResult Create(ViewModel viewModel)
    {
        //whatever you wanted to do with viewModel.Employee.Gender
        return RedirectToAction("Index");
    }

你的视图应该是:

@model GenderApplication.Models.ViewModel
@using (Html.BeginForm())
{
@Html.RadioButtonFor(model => model.Employee.Gender, "Male")
<text>True</text>
<br />
@Html.RadioButtonFor(model => model..Employee.Gender, "Female")
<text>False</text>  
<br />
<input type="submit" value="Submit" formaction="@Url.Action("Create")" />

我想在这里添加一些东西

如果您正在使用

,请将[BindProperty]属性添加到属性Gender
<input type = radio" name = "ViewModel.Gender" value="Male"> 
<input type = radio" name = "ViewModel.Gender" value="Female"> 

在您的cshtml中像这样使其工作并使用为Gender选择的值填充输入模型

相关内容

  • 没有找到相关文章

最新更新