如何用ASP.NET MVC 2实现checkboxlist长尾词自动生成?

2026-03-30 12:051阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计743个文字,预计阅读时间需要3分钟。

如何用ASP.NET MVC 2实现checkboxlist长尾词自动生成?

在ASP.NET MVC中创建checkboxlist并保存用户选择的值,可以按照以下步骤操作:

1. 创建checkboxlist: 在视图中,你可以使用HTML的``元素来创建checkboxlist。例如:

@Html.ListBox(WorkDays, new List { 星期一, 星期二, 星期三, 星期四, 星期五 })

2. 保存用户选择: 在控制器中,你可以通过模型绑定来获取用户的选择,并将其保存到数据库中。以下是一个简单的示例:

csharp public class WorkDayViewModel { public List WorkDays { get; set; } }

如何用ASP.NET MVC 2实现checkboxlist长尾词自动生成?

[HttpPost] public ActionResult SaveWorkDays(WorkDayViewModel model) { if (ModelState.IsValid) { // 假设有一个方法来保存选择到数据库 SaveSelectedDaysToDatabase(model.WorkDays); return RedirectToAction(Index); } return View(model); }

private void SaveSelectedDaysToDatabase(List selectedDays) { // 这里应该是将selectedDays列表保存到数据库的逻辑 }

3. 使用枚举类型: 为了更清晰地表示星期,你可以使用枚举类型:

csharp public enum DayOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday }

然后在视图中使用:

@Html.ListBox(WorkDays, Enum.GetValues(typeof(DayOfWeek)).Cast())

在控制器中,你可以直接使用枚举类型:

csharp public ActionResult SaveWorkDays(WorkDayViewModel model) { if (ModelState.IsValid) { var selectedDays=model.WorkDays.Select(day=> (DayOfWeek)Enum.Parse(typeof(DayOfWeek), day)).ToList(); // 保存selectedDays到数据库 return RedirectToAction(Index); } return View(model); }

这样,你就可以在ASP.NET MVC中创建一个checkboxlist,并保存用户选择的星期值到数据库中。

我想在asp.net mvc视图中创建一个checkboxlist,并希望显示工作日(星期一,星期二,……).我想保存用户在数据库中选择的值.我怎么能在MVC2中这样做

有人建议我使用这里提到的“枚举类型为位标志”:

msdn.microsoft.com/en-us/library/cc138362.aspx

我怎么用呢?

请建议解决方案.

是的,我还建议在这种情况下使用枚举.

以下是如何在ASP.NET MVC中执行此操作:

你的枚举应该是这样的(参见你提供的链接):

[Flags] public enum Days { Sunday = 0x1, Monday = 0x2, Tuesday = 0x4, Wednesday = 0x8, Thursday = 0x10, Friday = 0x20, Saturday = 0x40 }

为了可重用性,我创建了一个通用的html帮助器,如下所示:

public static IHtmlString CheckboxListForEnum<T>(this HtmlHelper html, string name, T modelItems) where T : struct { StringBuilder sb = new StringBuilder(); foreach (T item in Enum.GetValues(typeof(T)).Cast<T>()) { TagBuilder builder = new TagBuilder("input"); long targetValue = Convert.ToInt64(item); long flagValue = Convert.ToInt64(modelItems); if ((targetValue & flagValue) == targetValue) builder.MergeAttribute("checked", "checked"); builder.MergeAttribute("type", "checkbox"); builder.MergeAttribute("value", item.ToString()); builder.MergeAttribute("name", name); builder.InnerHtml = item.ToString(); sb.Append(builder.ToString(TagRenderMode.Normal)); } return new HtmlString(sb.ToString()); }

您可以对所有枚举类型使用相同的html帮助程序.

用法:

现在出于演示目的,假设你有一个这样的模型:

模型:

public class TVShow { public string Title { get; set; } public string Description { get; set; } public Days AvailableOn { get; set; } }

控制器动作:

public ActionResult Show() { var show = new TVShow { Title = "Late Late Show", AvailableOn = Days.Monday | Days.Friday }; return View(show); }

查看(强类型):

<%: Model.Title %> <%: Model.Description %> <%: Html.CheckboxListForEnum<Days>("days", Model.AvailableOn)%>

本文共计743个文字,预计阅读时间需要3分钟。

如何用ASP.NET MVC 2实现checkboxlist长尾词自动生成?

在ASP.NET MVC中创建checkboxlist并保存用户选择的值,可以按照以下步骤操作:

1. 创建checkboxlist: 在视图中,你可以使用HTML的``元素来创建checkboxlist。例如:

@Html.ListBox(WorkDays, new List { 星期一, 星期二, 星期三, 星期四, 星期五 })

2. 保存用户选择: 在控制器中,你可以通过模型绑定来获取用户的选择,并将其保存到数据库中。以下是一个简单的示例:

csharp public class WorkDayViewModel { public List WorkDays { get; set; } }

如何用ASP.NET MVC 2实现checkboxlist长尾词自动生成?

[HttpPost] public ActionResult SaveWorkDays(WorkDayViewModel model) { if (ModelState.IsValid) { // 假设有一个方法来保存选择到数据库 SaveSelectedDaysToDatabase(model.WorkDays); return RedirectToAction(Index); } return View(model); }

private void SaveSelectedDaysToDatabase(List selectedDays) { // 这里应该是将selectedDays列表保存到数据库的逻辑 }

3. 使用枚举类型: 为了更清晰地表示星期,你可以使用枚举类型:

csharp public enum DayOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday }

然后在视图中使用:

@Html.ListBox(WorkDays, Enum.GetValues(typeof(DayOfWeek)).Cast())

在控制器中,你可以直接使用枚举类型:

csharp public ActionResult SaveWorkDays(WorkDayViewModel model) { if (ModelState.IsValid) { var selectedDays=model.WorkDays.Select(day=> (DayOfWeek)Enum.Parse(typeof(DayOfWeek), day)).ToList(); // 保存selectedDays到数据库 return RedirectToAction(Index); } return View(model); }

这样,你就可以在ASP.NET MVC中创建一个checkboxlist,并保存用户选择的星期值到数据库中。

我想在asp.net mvc视图中创建一个checkboxlist,并希望显示工作日(星期一,星期二,……).我想保存用户在数据库中选择的值.我怎么能在MVC2中这样做

有人建议我使用这里提到的“枚举类型为位标志”:

msdn.microsoft.com/en-us/library/cc138362.aspx

我怎么用呢?

请建议解决方案.

是的,我还建议在这种情况下使用枚举.

以下是如何在ASP.NET MVC中执行此操作:

你的枚举应该是这样的(参见你提供的链接):

[Flags] public enum Days { Sunday = 0x1, Monday = 0x2, Tuesday = 0x4, Wednesday = 0x8, Thursday = 0x10, Friday = 0x20, Saturday = 0x40 }

为了可重用性,我创建了一个通用的html帮助器,如下所示:

public static IHtmlString CheckboxListForEnum<T>(this HtmlHelper html, string name, T modelItems) where T : struct { StringBuilder sb = new StringBuilder(); foreach (T item in Enum.GetValues(typeof(T)).Cast<T>()) { TagBuilder builder = new TagBuilder("input"); long targetValue = Convert.ToInt64(item); long flagValue = Convert.ToInt64(modelItems); if ((targetValue & flagValue) == targetValue) builder.MergeAttribute("checked", "checked"); builder.MergeAttribute("type", "checkbox"); builder.MergeAttribute("value", item.ToString()); builder.MergeAttribute("name", name); builder.InnerHtml = item.ToString(); sb.Append(builder.ToString(TagRenderMode.Normal)); } return new HtmlString(sb.ToString()); }

您可以对所有枚举类型使用相同的html帮助程序.

用法:

现在出于演示目的,假设你有一个这样的模型:

模型:

public class TVShow { public string Title { get; set; } public string Description { get; set; } public Days AvailableOn { get; set; } }

控制器动作:

public ActionResult Show() { var show = new TVShow { Title = "Late Late Show", AvailableOn = Days.Monday | Days.Friday }; return View(show); }

查看(强类型):

<%: Model.Title %> <%: Model.Description %> <%: Html.CheckboxListForEnum<Days>("days", Model.AvailableOn)%>