asp.net – 如何使用MVC 4和View Models(强类型)渲染一组复选框
发布时间:2020-05-24 01:11:15 所属栏目:asp.Net 来源:互联网
导读:我更喜欢ASP.net MVC世界,而我正在试图找出如何渲染一组强大类型的视图模式的复选框.在webforms中,我将使用checkboxlist控件,但是使用MVC有点丢失. 我正在为婚礼策划业务构建一个简单的联系表单,需要将用户选择的任何复选框值传递给我的控制器. 表单复选框需
|
我更喜欢ASP.net MVC世界,而我正在试图找出如何渲染一组强大类型的视图模式的复选框.在webforms中,我将使用checkboxlist控件,但是使用MVC有点丢失. 我正在为婚礼策划业务构建一个简单的联系表单,需要将用户选择的任何复选框值传递给我的控制器. 表单复选框需要如下所示: 您的帮助将不胜感激.谢谢! 这是我到目前为止. CONTROLLER [HttpPost]
public ActionResult Contact(ContactViewModel ContactVM)
{
if (!ModelState.IsValid)
{
return View(ContactVM);
}
else
{
//Send email logic
return RedirectToAction("ContactConfirm");
}
}
查看模型 public class ContactViewModel
{
[Required]
public string Name { get; set; }
[Required]
public string Phone { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
public string Subject { get; set; }
public IEnumerable<SelectListItem> SubjectValues
{
get
{
return new[]
{
new SelectListItem { Value = "General Inquiry",Text = "General Inquiry" },new SelectListItem { Value = "Full Wedding Package",Text = "Full Wedding Package" },new SelectListItem { Value = "Day of Wedding",Text = "Day of Wedding" },new SelectListItem { Value = "Hourly Consultation",Text = "Hourly Consultation" }
};
}
}
//Not sure what I should do for checkboxes...
}
视图 @model NBP.ViewModels.ContactViewModel
@{
ViewBag.Title = "Contact";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
<div id="ContactContainer">
<div><span class="RequiredField">* </span>Your Name:</div>
<div>
@Html.TextBoxFor(model => model.Name)
</div>
<div><span class="RequiredField">* </span>Your Phone:</div>
<div>
@Html.TextBoxFor(model => model.Phone)
</div>
<div><span class="RequiredField">* </span>Your Email:</div>
<div>
@Html.TextBoxFor(model => model.Email)
</div>
<div>Subject:</div>
<div>
@Html.DropDownListFor(model => model.Subject,Model.SubjectValues)
</div>
<div>Vendor Assistance:</div>
<div>
<!-- CHECKBOXES HERE -->
</div>
<div>
<input id="btnSubmit" type="submit" value="Submit" />
</div>
</div>
}
解决方法您可以丰富您的视图模型:public class VendorAssistanceViewModel
{
public string Name { get; set; }
public bool Checked { get; set; }
}
public class ContactViewModel
{
public ContactViewModel()
{
VendorAssistances = new[]
{
new VendorAssistanceViewModel { Name = "DJ/BAND" },new VendorAssistanceViewModel { Name = "Officiant" },new VendorAssistanceViewModel { Name = "Florist" },new VendorAssistanceViewModel { Name = "Photographer" },new VendorAssistanceViewModel { Name = "Videographer" },new VendorAssistanceViewModel { Name = "Transportation" },}.ToList();
}
[Required]
public string Name { get; set; }
[Required]
public string Phone { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
public string Subject { get; set; }
public IEnumerable<SelectListItem> SubjectValues
{
get
{
return new[]
{
new SelectListItem { Value = "General Inquiry",Text = "Hourly Consultation" }
};
}
}
public IList<VendorAssistanceViewModel> VendorAssistances { get; set; }
}
控制器: public class HomeController : Controller
{
public ActionResult Index()
{
return View(new ContactViewModel());
}
[HttpPost]
public ActionResult Index(ContactViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
//Send email logic
return RedirectToAction("ContactConfirm");
}
}
视图: @using (Html.BeginForm())
{
<div id="ContactContainer">
<div><span class="RequiredField">* </span>Your Name:</div>
<div>
@Html.TextBoxFor(model => model.Name)
</div>
<div><span class="RequiredField">* </span>Your Phone:</div>
<div>
@Html.TextBoxFor(model => model.Phone)
</div>
<div><span class="RequiredField">* </span>Your Email:</div>
<div>
@Html.TextBoxFor(model => model.Email)
</div>
<div>Subject:</div>
<div>
@Html.DropDownListFor(model => model.Subject,Model.SubjectValues)
</div>
<div>Vendor Assistance:</div>
<div>
@for (int i = 0; i < Model.VendorAssistances.Count; i++)
{
<div>
@Html.HiddenFor(x => x.VendorAssistances[i].Name)
@Html.CheckBoxFor(x => x.VendorAssistances[i].Checked)
@Html.LabelFor(x => x.VendorAssistances[i].Checked,Model.VendorAssistances[i].Name)
</div>
}
</div>
<div>
<input id="btnSubmit" type="submit" value="Submit" />
</div>
</div>
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如果复选框被选中,ASP.NET – 需要一个文本框
- asp.net – 如何在web.config中读取会话状态信息
- asp.net-web-api – 如何在HttpReponseMessage上设置响应co
- .net – 将HtmlTextWriter的内容转换为字符串
- asp.net-mvc – 为什么ValidateInput(False)不工作?
- asp.net-mvc – 在ASP.NET MVC中使用DotNetOpenId Remember
- asp.net-mvc – 可以通过RedirectToAction传递模型吗?
- asp.net-mvc – “后退”按钮和防伪令牌
- ASP.NET MVC中数据注释的默认资源
- .net – 如何保持验证DRY?
推荐文章
站长推荐
- 用于创建ASP.NET成员资格提供程序用户的脚本
- asp.net-mvc-4 – Require.js优化vs asp.net mvc
- .net – DataAnnotations与IDataErrorInfo
- asp.net – Visual Studio 2013更改现有项目的身
- asp.net – 使用sql server的Web应用程序中的审计
- 通过HTTPS在ASP.NET中安全的会话cookie
- asp.net-core – .NET Core SDK安装程序无法在Wi
- 应该将ASP.NET应用程序池设置为自动回收?
- 如何在ASP.NET 4.0应用程序的IIS管理器中添加用户
- asp.net – 无法在UpdatePanel中下载文件
热点阅读
