我想知道的是Html.CheckBoxForASP.NET MVC中HTML帮助程序的正确语法.
我想要完成的是最初使用ID值检查复选框,以便我可以在Controller中引用它以查看它是否仍然被检查.
下面是正确的语法?
@foreach (var item in Model.Templates)
{
<td>
@Html.CheckBoxFor(model => true, item.TemplateId)
@Html.LabelFor(model => item.TemplateName)
</td>
}
Run Code Online (Sandbox Code Playgroud) 如果以前曾被问过,请道歉; 有一百万种方法来表达它,因此寻找答案已经证明是困难的.
我有一个具有以下属性的viewmodel:
public class AssignSoftwareLicenseViewModel
{
public int LicenseId { get; set; }
public ICollection<SelectableDeviceViewModel> Devices { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
SelectableDeviceViewModel的简化版本是这样的:
public class SelectableDeviceViewModel
{
public int DeviceInstanceId { get; set; }
public bool IsSelected { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的视图中,我试图在输入表单中显示Devices属性的可编辑复选框列表.目前,我的View看起来像这样:
@using (Html.BeginForm())
{
@Html.HiddenFor(x => Model.LicenseId)
<table>
<tr>
<th>Name</th>
<th></th>
</tr>
@foreach (SelectableDeviceViewModel device in Model.Devices)
{
@Html.HiddenFor(x => device.DeviceInstanceId)
<tr>
<td>@Html.CheckBoxFor(x => device.IsSelected)</td>
<td>@device.Name</td>
</tr>
}
</table>
<input type="submit" …Run Code Online (Sandbox Code Playgroud) 我有一个绑定到SQL表的EF实体,该表包含一个名为"Active"的位字段.我从T4模板生成编辑代码,页面继承自EF实体.在页面的底部,它生成了一个CheckBoxFor,如下所示:
<%= Html.CheckBoxFor(model => model.Active) %>
Run Code Online (Sandbox Code Playgroud)
我在模型下获得了漂亮的红色波浪形.活跃,并且错误消息说我不能隐式转换类型bool?布尔.所以,我尝试了以下内容:
<%= Html.CheckBoxFor(model => (bool)model.Active) %>
Run Code Online (Sandbox Code Playgroud)
当然,它不喜欢这样,并给了我这个错误:
System.InvalidOperationException:模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式.
我可能错过了一些简单的东西.
我正在使用HtmlHelper在我的视图中创建一个复选框,如下所示:
<%= Html.CheckBoxFor(model => model.SeatOnly, new { checked = "checked" })%>
但是,抛出错误,因为checked是保留关键字.我发现有几个人说你必须使用'保留字前缀'并简单地在属性前放置一个uderscore,如下所示:
<%= Html.CheckBoxFor(model => model.SeatOnly, new { _checked = "checked" })%>
这不会产生错误,但在生成的html中,属性实际上是'_checked',这意味着它不起作用(如果我使用firebug并删除下划线属性然后生效).
在使用的时候有没有人知道这个方法CheckBoxFor呢?
谢谢
CheckBoxFor(t => t.boolValue,new {disabled ="disabled"})方法在禁用模式下呈现复选框.
该方法也呈现隐藏字段.
我的问题是为什么这个隐藏字段对于禁用复选框有错误值?我相信隐藏字段的目的是在默认的复选框行为上有一些额外的行为
有没有办法覆盖默认的MVC功能,以便即使在禁用模式下,此隐藏字段的值也基于复选框的状态?
我有一个看起来像这样的模型:
public class EditUserViewModel
{
public EditUserViewModel()
{
}
public EditUserDataModel User { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用如下所示的后备对象:
public class EditUserDataModel
{
public EditUserDataModel()
{
Roles = new List<UserRoleListDataModel>();
}
[DisplayName("First Name")]
public string FirstName { get; set; }
[DisplayName("Last Name")]
public string LastName { get; set; }
[DisplayName("Full Name")]
public string FullName { get { return FirstName + " " + LastName; } }
public List<UserRoleListDataModel> Roles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
UserRoleListDataModel看起来像这样:
public class UserRoleListDataModel
{
public Guid …Run Code Online (Sandbox Code Playgroud) 我无法将事件绑定到 @html.editorfor
我听说它可能与“class”属性的存在有关,但我看不出任何联系。
@Html.EditorFor(model => model.SameAsBaseAddress, new { @onclick = "checkboxcheck()" })
function checkboxcheck() {
//blah...
}
Run Code Online (Sandbox Code Playgroud)
当我使用 firebug 进行调试并手动添加处理程序时,一切正常。TextBoxFor、RadioButtonFor 等在 razor 事件绑定方面没有问题。
该怎么办?
我有一个MVC索引页面,反映了数据库中的表.
其中一列是布尔值.
我希望在索引页面中有一个复选框,当单击时,立即调用一个动作,该操作将在现场保存新状态而无需提交/刷新.
我有一个 html 元素(使用 MVC3 Razor)
<h2 class="price">
@Html.LabelFor(vm => vm.Price)
@Html.Encode(@Model.Price)
</h2>
<div id="checkbox-price">
@Html.CheckBoxFor(vm => vm.IncludeToPayment) Include in payment.
</div>
Run Code Online (Sandbox Code Playgroud)
当用户使用 JQUEry 取消选中/选中复选框时,如何更改 h2 元素的样式(在这种情况下,我想对内部的项目进行文本装饰:划线)?
提前致谢。
我正在尝试实现一个权限屏幕,在该权限屏幕中,用户可以在特定屏幕上获得特定权限.为此,我将生成一个Checkboxfor集合,绑定到bool属性的集合.但是当我提交表单时,我要么将所有bool属性设置为true,要么全部为false,这取决于我是否在viewmodel构造函数中将这些属性初始化为true或false.
以下是ViewModel的代码:
方法I:
public class MyViewModel
{
public MyModel Model { get; set; }
public IEnumerable<ScreenType> Screens { get; set; }
public IEnumerable<SecurityType> SecurityTypes { get; set; }
public List<PermissionType> Permissions { get; set; }
public MyViewModel()
{
LoadScreens();
LoadSecurityTypes();
LoadPermissions();
}
public void LoadPermissions()
{
Permissions = new List<PermissionType>();
foreach (var screen in Screens)
{
foreach (var securityType in SecurityTypes)
{
Permissions.Add(
new PermissionType
{
PermissionId= Guid.NewGuid(),
ScreenId= screen.Id,
SecurityId = securityType.Id,
IsAllowed = false
});
}
}
} …Run Code Online (Sandbox Code Playgroud) checkboxfor ×10
asp.net-mvc ×7
jquery ×2
razor ×2
actionlink ×1
c# ×1
checkbox ×1
javascript ×1
submit ×1
viewmodel ×1