在同一表单中使用复选框列表和 textbox/html 输入的示例?
Example of using a checkboxlist AND textbox/html input within the same form?
我想使用 ASP.NET MVC 和 C# 在一个视图 (.cshtml) 上使用 CheckBoxList 和下拉列表以及其他 html 控件。
我苦苦挣扎的项目的最新主题是:当您想要 save/edit 表单时,在视图的顶部有这一行:
@model WebApplication1.Models.tbl_hobbies
然后您可以像这样使用 html helper/input 代码:
@Html.EditorFor(model => model.Name_and_Surname, new { htmlAttributes = new { @class = "form-control" } })
我试过的大多数复选框项目都有这个,所以它可以使用 foreach 等接收对象列表。
@model List<WebApplication1.Models.tbl_Hobbies>
然后是复选框列表代码:
@for (int i = 0; i < Model.Count(); i++)
{
<tr>
<td>
@Html.CheckBoxFor(m => m[i].isSelected)
</td>
<td>
@Html.DisplayFor(m => m[i].hobbyname)
@Html.HiddenFor(m => m[i].hobbyid)
</td>
</tr>
}
任何人都可以告诉我如何在一个视图中结合这两种方法,或者任何地方的例子吗?我已经搜索并尝试实施大多数解决方案,但 none 正在运行。请协助。
您可以让一个 ViewModel
具有两种不同的属性,一种是 tbl_hobbies
,另一种是 List<tbl_hobbies>
。所以它应该看起来像:
public class HobbiesViewModel
{
public tbl_hobbies Hobby { get; set; }
public List<tbl_hobbies> Hobbies { get; set; }
}
在您看来 (.cshtml
),您可以将 ViewModel
用作:
@model YourNameSpace.HobbiesViewModel
现在您可以将 EditorFor(..)
用作:
@Html.EditorFor(model => model.Hobby.Name_and_Surname, new { htmlAttributes = new { @class = "form-control" } })
对于您的复选框,您可以使用 foreach
循环作为:
@foreach (var hobby in Model.Hobbies)
{
<tr>
<td>
@Html.CheckBoxFor(m => hobby.isSelected)
</td>
<td>
@Html.DisplayFor(m => hobby.hobbyname)
@Html.HiddenFor(m => hobby.hobbyid)
</td>
</tr>
}
最后,在您的控制器操作中:
public ActionResult SomeAction()
{
var hobbiesViewModel = //get the relevant data for your view model.
return View(hobbiesViewModel);
}
我想使用 ASP.NET MVC 和 C# 在一个视图 (.cshtml) 上使用 CheckBoxList 和下拉列表以及其他 html 控件。
我苦苦挣扎的项目的最新主题是:当您想要 save/edit 表单时,在视图的顶部有这一行:
@model WebApplication1.Models.tbl_hobbies
然后您可以像这样使用 html helper/input 代码:
@Html.EditorFor(model => model.Name_and_Surname, new { htmlAttributes = new { @class = "form-control" } })
我试过的大多数复选框项目都有这个,所以它可以使用 foreach 等接收对象列表。
@model List<WebApplication1.Models.tbl_Hobbies>
然后是复选框列表代码:
@for (int i = 0; i < Model.Count(); i++)
{
<tr>
<td>
@Html.CheckBoxFor(m => m[i].isSelected)
</td>
<td>
@Html.DisplayFor(m => m[i].hobbyname)
@Html.HiddenFor(m => m[i].hobbyid)
</td>
</tr>
}
任何人都可以告诉我如何在一个视图中结合这两种方法,或者任何地方的例子吗?我已经搜索并尝试实施大多数解决方案,但 none 正在运行。请协助。
您可以让一个 ViewModel
具有两种不同的属性,一种是 tbl_hobbies
,另一种是 List<tbl_hobbies>
。所以它应该看起来像:
public class HobbiesViewModel
{
public tbl_hobbies Hobby { get; set; }
public List<tbl_hobbies> Hobbies { get; set; }
}
在您看来 (.cshtml
),您可以将 ViewModel
用作:
@model YourNameSpace.HobbiesViewModel
现在您可以将 EditorFor(..)
用作:
@Html.EditorFor(model => model.Hobby.Name_and_Surname, new { htmlAttributes = new { @class = "form-control" } })
对于您的复选框,您可以使用 foreach
循环作为:
@foreach (var hobby in Model.Hobbies)
{
<tr>
<td>
@Html.CheckBoxFor(m => hobby.isSelected)
</td>
<td>
@Html.DisplayFor(m => hobby.hobbyname)
@Html.HiddenFor(m => hobby.hobbyid)
</td>
</tr>
}
最后,在您的控制器操作中:
public ActionResult SomeAction()
{
var hobbiesViewModel = //get the relevant data for your view model.
return View(hobbiesViewModel);
}