您好,我正在使用 Editorfor() 制作一个小表单,将视图模型提交到控制器。Editorfor() 很好地打印模型的输入字段,但它也打印主键字段。所以我想隐藏主键字段。
@Html.EditorFor(m=>m.viewmodel)
Run Code Online (Sandbox Code Playgroud)
这是我的标记。
@Html.HiddenFor(m => m.viewmodel.Id);
@Html.EditorFor(m=>m.viewmodel)
Run Code Online (Sandbox Code Playgroud)
已经尝试过这个但不起作用。我想直接对模型进行处理,但我使用的是 EF Designer,所以我不知道从哪里开始。请给我一个建议。
我的模型类中有以下代码:-
public class PageOptions
{
public PageOptions()
{
int size = Int32.Parse(System.Web.Configuration.WebConfigurationManager.AppSettings["TechPageSize"]);
NameSelectionOptions = new SelectList(
new List<SelectListItem> {
new SelectListItem { Text=size.ToString(), Value = size.ToString()},
new SelectListItem { Text="50", Value = "50"},
new SelectListItem { Text="100", Value = "100"},
new SelectListItem { Text="200", Value = "200"},
new SelectListItem { Text="500", Value = "500"}
}, "Value", "Text");
}
public SelectList NameSelectionOptions { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
但我如何在 Html.DropDownList 中显示 SelectList ?并将默认值设置为大小?谢谢
如果禁用复选框,该值是否不会提交到数据库?我禁用了一个复选框,这样即使用户没有在表单的其余部分输入任何值,也至少会提交一个值。但是当我点击提交按钮时,数据库中没有条目。请帮忙
<table class="table-bordered">
<tr>
<td colspan="2">
@Html.CheckBoxFor(m => m.isUsed, new { @disabled="disabled"})
</td>
</tr>
<tr>
<td>
@Html.TextBoxFor(m => m.FirstName, @Model.isUsed ? (object)new { @class = "form-control" } : new { @class = "form-control", @disabled = "disabled" })
@Html.ValidationMessageFor(m => m.FirstName)
</td>
</tr>
Run Code Online (Sandbox Code Playgroud) 我正在使用 ASP.NET MVC 5 并且我有一个使用以下 Html 帮助器的表单
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
Run Code Online (Sandbox Code Playgroud)
当我查看浏览器中生成的渲染 Html 时,它似乎将其渲染为Span元素。这会导致验证消息与我的标签之一位于同一行。
我想知道的是如何使该@Html.ValidationMessageFor()方法呈现 Div元素而不是Span?
我试图在我的 Razor 代码中显示一个值。我尝试过 DisplayFor 和 LabelFor。如果我使用 DisplayFor 那么我的值会显示,但我的 CSS 不会被应用。如果我使用 LabelFor 则相反,我的 CSS 已应用,但文本仅显示为“EmployeeId”。在转到 View 之前,我已确认我的 ViewModel 已为 EmployeeId 填充了值。
这是我尝试过的:
<div class="row voffset2">
<div class="col-md-12">
Employee ID: @Html.LabelFor(m => m.EmployeeId, new { @class = "control-label label-value" })
</div>
</div>
<div class="row voffset2">
<div class="col-md-12">
Employee ID: @Html.DisplayFor(m => m.EmployeeId, new { @class = "control-label label-value" })
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 我有一些枚举,我需要在下拉列表中显示,并在我的管理页面中预先填充它们.
有没有内置的html助手呢?
(asp.net mvc)
我正在从Delphi 6升级到Delphi XE.在Delphi 6中,我使用HTML帮助文件(.chm)并使用StoHtmlHelp来创建它,以便我可以调用上下文敏感的帮助,就像我们以前调用.hlp文件一样.我正在升级到Delphi XE,所以我需要使用原生HTML帮助支持.
我知道我应该将HTMLHelpViewer添加到项目的uses子句中,但是当我这样做时,我得到一个编译器警告它无法找到该文件.
无法编译使用过的单位'HTMLHelpViewer.pas'
有谁知道为什么Delphi默认没有找到这个文件?它应该内置.
@Html.TextBoxFor(
model => model.SomeProperty,
new { data_url = "http://www.google.com" }
)
Run Code Online (Sandbox Code Playgroud)
被渲染为
<input id="SomeProperty" data-url="http://www.google.com">
Run Code Online (Sandbox Code Playgroud)
我有一些类似于此的自定义扩展
public static MvcHtmlString TextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes, bool disabled)
{
var htmlAttrs = new RouteValueDictionary(htmlAttributes);
return TextBoxFor<TModel, TProperty>(htmlHelper, expression, htmlAttrs, disabled);
}
public static MvcHtmlString TextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IDictionary<string, object> htmlAttributes, bool disabled)
{
if (disabled)
{
htmlAttributes["disabled"] = true;
}
return htmlHelper.TextBoxFor(expression, htmlAttributes);
}
Run Code Online (Sandbox Code Playgroud)
第一过载,其中object htmlAttributes使用htmlAttributes,调用第二过载,其中htmlAttributes被转换到IDictionary<string, object> …
我尝试用Telerik的控件创建一个html帮助器,但为了做到这一点,我必须在文件的顶部有这个指令:
@using Telerik.Web.Mvc.UI
问题出在html helper中,当我输入'@using'然后尝试键入'Telerik'时,visual studio告诉我,即使我已经在同一项目中的许多其他地方使用了该指令,该命名空间也不存在.

正如您所看到的那样,Telerik命名空间会产生错误; '无法解决符号......
这是同一项目的某个EditorTemplates文件夹中的相同代码,但在这种情况下,没有错误:

是因为除了MVC框架之外我不可能拥有控制权或者我错过了什么?
谢谢.
编辑:
在Darin的帮助下搜索后,我终于找到了问题所在.您可以查看Darin的评论答案.
另外,这是我的最终代码:
@using System.Web.Mvc
@using Telerik.Web.Mvc.UI
@helper IntegerTextBox(System.Web.Mvc.HtmlHelper html, string id, int? value, bool enable = true)
{
@(html.Telerik().IntegerTextBox()
.Name(id)
.InputHtmlAttributes(new {style = "width:200px"})
.Spinners(false)
.EmptyMessage("")
.MaxValue(int.MinValue)
.MaxValue(int.MaxValue)
.Value(value)
.Enable(enable)
)
}
Run Code Online (Sandbox Code Playgroud)
就像我说的那样,你不能使用@using指令到System.Web.Mvc来减少第一个参数的完全限定类型.我不知道为什么......'HtmlHelper'看起来像'html helper'或'@helper'......这个词与MVC框架中的某些内容有冲突?我不知道!?:(