- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试将使用 for 循环和 Razor 语法创建的单选按钮组合在一起。这是代码:
@for (var i = 0; i < Model.Sessions.Count(); i++)
{
@Html.HiddenFor(it => it.Sessions[i].Id)
@Html.RadioButtonFor(it => it.Sessions[i].Checkbox, "0", new {@class = "Sessions", @id = id, @name="Sessions"})
@Html.LabelFor(it => it.Sessions[i].Name, Model.Sessions[i].Name)
<span class="time-span"><em>@Model.Sessions[i].StartTime</em><em>@Model.Sessions[i].EndTime</em></span>
<br />
}
for 循环中的第三行是问题所在。基本上名称不会改变,它始终是“Sessions[x].Checkbox”。复选框是自定义类的属性 (bool)。我似乎无法掌握调试 Razor 东西的诀窍,所以任何帮助将不胜感激,我猜这对这里的人来说是非常明显的。
编辑Dimitrov 的帖子帮了大忙。下面是我使用的最终代码。我使用 @class 和 @id 属性能够使用 Javascript 来选择最初选择的 session (因为这是一个编辑,而不是创建表单)。
@for (var i = 0; i < Model.Sessions.Count(); i++)
{
@Html.HiddenFor(it => it.Sessions[i].Id)
var SId = @Model.Sessions[i].Id;
@Html.RadioButtonFor(it => it.selectedSession, Model.Sessions[i].Id, new { id = SId, @class = "Sessions" })
@Html.LabelFor(it => it.Sessions[i].Name, Model.Sessions[i].Name)
<span class="time-span"><em>@Model.Sessions[i].StartTime</em><em>@Model.Sessions[i].EndTime</em></span>
<br />
}
最佳答案
如果你只想选择一个单选按钮,你需要在 View 模型上有一个属性来保存所选的 session ID,如下所示:
public class SessionViewModel
{
public int SelectedSessionId { get; set; }
public IList<Session> Sessions { get; set; }
}
public class Session
{
public int Id { get; set; }
public string Name { get; set; }
}
然后有一个 Controller :
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new SessionViewModel
{
SelectedSessionId = 2,
Sessions = Enumerable.Range(1, 5).Select(x => new Session
{
Id = x,
Name = "session" + x,
}).ToList()
};
return View(model);
}
[HttpPost]
public ActionResult Index(SessionViewModel model)
{
return Content("Thank you for selecting session id: " + model.SelectedSessionId);
}
}
最后是一个 View :
@model SessionViewModel
@using (Html.BeginForm())
{
for (var i = 0; i < Model.Sessions.Count(); i++)
{
@Html.HiddenFor(x => x.Sessions[i].Id)
@Html.RadioButtonFor(x => x.SelectedSessionId, Model.Sessions[i].Id, new { id = "session_" + i })
@Html.Label("session_" + i, Model.Sessions[i].Name)
<br/>
}
<button type="submit">OK</button>
}
关于html - 如何覆盖 RadioButtonFor 的名称属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11038492/
我在我的 web 项目中使用 RadioButtonFor,但如果用户选择单选按钮的文本,我想使用标签来选择项目,但生成的 html 给了我由于 Radiobuton,多个相同的 #id,我想更改它以
我的 View 模型中有这个属性: public bool IsObligatory { get; set; } 它应该由用户在 post 方法中填写。问题是我检查了第二个单选按钮的默认值。如何删除它
我正在生成单选按钮列表,然后尝试在加载时选择一个选项,如下所示。 View 中的 Foreach 循环 @foreach (var myListItem in Model.MyList) {
不确定标题是否有意义,但是当我们选择是/否单选按钮时,我有下面的代码来隐藏/显示一些字段 @if (Model != null) { using (Html.BeginForm("NextB
我有一个 PDF 类 public class UIClonePDFDetail { public int CatalogueID { get; set; }
我正在尝试将使用 for 循环和 Razor 语法创建的单选按钮组合在一起。这是代码: @for (var i = 0; i it.Sessions[i].Id)
我在使用模型中的 HtmlHelper、RadioButtonFor 和枚举时遇到问题。我有一个强类型 View ,我希望复选框能够切换我的枚举属性。 Enum.cs public enum Valu
在 ASP.NET MVC4 的 Razor View 中,如何确保没有一个单选按钮默认为未选中? MVC 似乎为我检查了一个,即使我没有声明在以下代码中检查一个。 @Html.RadioButton
这是我的静态类: using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; us
我在 View 中使用 foreach 循环来显示一些单选按钮行.. sample radiobutton Integrity @Html.RadioButton
我使用 @Html.RadioButtonFor 扩展方法有一个奇怪的行为。我正在使用 foreach 循环创建 RadioButton 和 By 三元运算符的列表。我试图将尊重条件的人设置为检查,但
我的 mvc 网页中有 2 个单选按钮。 // some html codes m.Agents, "A", new { Checked = "checked" })%> //ra
我是 MVC 的新手。目前我有一个强类型 View ,我使用两个 Html.RadioButtonFor 作为标签,代码类似于: @Html.RadioButtonFor(model
到目前为止,我正在尝试用 Razor 语法制作一个单选按钮列表 @foreach (var p in Model) { @Html.RadioButton("name", "
我在 View 中嵌套了 foreach 循环,但单选按钮有问题。 @foreach (var header in Model.surveyHeaders) { @header.Name fo
我有三个单选按钮,我的字段值类型是整数,例如 Maintenance 为 3,1 人活跃,2 人不活跃。 @Html.RadioButtonFor(model => model.StatusId, "
我有一个表格: @using (Html.BeginForm("Buy", "Keys", FormMethod.Post)) { 1. @Html.DropDownLi
我有这样定义的单选按钮 @foreach (var actionType in partActionTypes) { @Html.RadioButtonFor(x =>
根据我的研究,在 MVC 中编写复选框的正确方法如下。 @Html.CheckBoxFor(m => m.RememberMe) @Html.LabelFor(m => m.RememberMe) 这
我在 MVC razor 中编写了一个单选按钮。下面是它的代码。 @{ var LinkRadioName = "_Link"; var Content
我是一名优秀的程序员,十分优秀!