在MVC5 +视图中定义一组单选按钮的最优雅方法是什么?
假设我有一个像这样的视图模型
public class ViewModel
{
public bool Value1 {get;set;}
public bool Value2 {get;set;}
}
我想在MVC5 +视图上渲染它,以便它的Value1或Value2?在WebForms中,我会将它们放在一行并为它们定义一个公共的GroupName属性,而在纯HTML中,我会创建一对input type = radio并为它们提供一个共同的“name”属性。使用属性/数据注释在MVC中执行此操作的最佳方法是什么?
由于
答案 0 :(得分:0)
最好有一个类,例如viewmodel类中引用的“Employee”。然后将viewmodel分配给视图,您可以在其中引用viewmodel中的任何类。
下面的例子会给你两个单选按钮,它们会为你的男性或女性提供问题的“性别”属性。如果你的问题是“你的性别是什么?”然后用户选择男性或女性。然后在控制器中,您可以询问用户选择的值。
您的ViewModel类将是:
public class ViewModel
{
public Employee Employee {get;set;}
}
您的员工类将是:
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")" />
答案 1 :(得分:0)
只是想在这里添加一些东西
如果您正在使用,请将 [BindProperty]
属性添加到属性 Gender
中
<input type = radio" name = "ViewModel.Gender" value="Male">
<input type = radio" name = "ViewModel.Gender" value="Female">
像这样在您的 cshtml
中使其工作并使用为 Gender
选择的值填充输入模型