我很可能没有明白这一点,但我真的无法弄清楚ASP.NET MVC的HTML帮助程序如何帮助我.这是一个样本: -
HTML:
<a href="ActionName" target="_blank">Click Me</a>
Run Code Online (Sandbox Code Playgroud)
HTML助手:
<%= Html.ActionLink("Click me", "ActionName", null, new {target="blank"}) %>
Run Code Online (Sandbox Code Playgroud)
我的眼睛更容易阅读HTML,使用HTML帮助程序似乎是违反直觉的.
看看以下参数:
是否有任何特殊的令人信服的理由,我还没有理解(因为我在MVC中自学成才,可能存在差距)应该让我更喜欢HTML助手?
或者他们只是编码噪音?
我正在启动一个新的ASP.NET MVC 3项目,并且我将实现一些默认只读的屏幕,但允许用户通过单击"编辑"按钮来编辑信息.我希望这些屏幕是AJAX.我以前使用jQuery Form Plugin在ASP.NET MVC 2项目上实现类似的屏幕.
我刚刚发现它的存在Ajax.BeginForm()并且想知道我是否应该使用它,因为它是内置的,而不是使用jQuery Form Plugin.我已经对这两种技术之间的差异进行了谷歌搜索,但找不到任何东西.
我想知道的是我应该在ASP.NET MVC 3中使用哪一个(或者完全不同的一个).
在ASP.NET MVC中实现AJAX表单的最佳实践和库是什么?
Ajax.BeginFormjQuery Form Plugin 的优点和缺点是什么?
Html.Label和之间有什么区别Html.Display?
我有一个asp.net mvc视图,允许用户在textarea中输入一些描述.
我面临两个问题.
当我扩展textarea时,它正在扩展而不移动其他html元素,或者我无法创建一个Html.TextBoxFor()多行文本框.有谁能建议解决这个问题?如果使用Textarea如何使其扩展(增大),以便它不与其他元素重叠或如何使用Html.TextBoxFor()多行?
这就是我的代码的样子
<% using (Html.BeginForm())
{ %>
<%: Html.ValidationSummary(true)%>
<fieldset>
<div class="editor-label1">
<%: Html.LabelFor(Model => Model.PackageID)%>
</div>
<div class ="editor-field1">
<%: Html.HiddenFor(Model => Model.PackageID)%>
<%: Html.DisplayFor(Model => Model.PackageID)%>
<%: Html.ValidationMessageFor(Model => Model.PackageID)%>
</div>
<div class="editor-label1">
<%: Html.LabelFor(Model => Model.PackageName)%>
</div>
<div class ="editor-field1">
<%: Html.TextBoxFor(Model => Model.PackageName)%>
<%: Html.ValidationMessageFor(Model => Model.PackageName)%>
</div>
<div class="editor-label1">
<%: Html.LabelFor(Model => Model.PackageDesc)%>
</div>
<div class ="editor-field1" style= "padding-bottom: 50px; margin-bottom: 150px">
<%: Html.TextBoxFor(Model => Model.PackageDesc, new { TextMode = TextBoxMode.MultiLine, cols …Run Code Online (Sandbox Code Playgroud) 当带有此文本框的MVC视图页面加载时,我希望默认显示当前日期和时间.我怎样才能做到这一点?用剃刀.
@Html.EditorFor(model => model.ReturnDate)
Run Code Online (Sandbox Code Playgroud) 我使用脚手架代码创建了一个强类型的MVC3 Razor视图.
该模型是一个POCO,其基本类型PersistentEntity定义了一个名为Created,Updated和Id的属性.
Id是一个int,Created和Updated是DateTime.
我Html.HiddenFor用来在视图上创建隐藏字段.
@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.Created)
@Html.HiddenFor(model => model.Updated)
Run Code Online (Sandbox Code Playgroud)
在页面上,正确呈现隐藏的输入,并在值中设置Id.
<input data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Id" name="Id" type="hidden" value="12">
Run Code Online (Sandbox Code Playgroud)
但是,当页面提交给控制器时[HttpPost]Edit(Model model),Id属性始终为0.已创建和更新已使用View中的值正确填充.

对于这篇文章中的例子,这应该是12.出了什么问题?
我知道我可以将方法签名更改[HttpPost]Edit(int personID, Person model)为personID在get字符串中,但为什么模型没有填充隐藏字段?
更新
问题是setter on PersistentEntity受到保护,ASP无法设置属性,并吞下它.将此更改为公开已解决了该问题.
public abstract class PersistentEntity
{
public virtual int Id { get; protected set; }
public virtual DateTime Created { get; set; }
public virtual DateTime Updated { …Run Code Online (Sandbox Code Playgroud) 我创建了帮助类
namespace SEM.API.Helpers
{
public static class Navigation
{
public static string BuildSomething(this HtmlHelper helper)
{
return "empty";
}
}
}
Run Code Online (Sandbox Code Playgroud)
并将命名空间添加到webconfig <add namespace="SEM.API.Helpers" />
但我仍然收到错误:
CS1061:"System.Web.Mvc.HtmlHelper"
经过大量的重建后,它还没有解决
具有文化的MVC页面取决于用户.在搜索选项中(搜索可以通过DueDate完成),我需要在DueDate文本框上有一个掩码.面具必须依赖于用户的文化.在js和cshtml中都有一个错误说:mask.split is not a function.将我jquery.maskedinput-1.2.3.js从.更改make.split为make.toString().split并且错误消失了,但必须看起来像这样:[object Object]或者有一些01数字.任何的想法?代码cshtml如下所示:
<script type="text/javascript">
$(function () {
var maskFormat = @Html.CurrentDateMask();
$(".DateBox").mask(maskFormat);
});
</script>
Run Code Online (Sandbox Code Playgroud) Html.RouteLink()HtmlHelper非常适合文本链接.但是链接图像的最佳方式是什么?
我想在ASP.NET MVC中SelectList()为a 分配静态项目列表,Html.DropDownList()最佳做法是什么?
我正打算尝试找到一种使用的方法new SelectList(new {key = "value"}...但是一种方法不起作用,而另外两种方法,如果我的静态列表ViewData无论如何被宣告并传递给我,我会在这里违反法律IList/IENumerable吗?
html-helper ×10
asp.net-mvc ×8
jquery ×2
.net ×1
ajax ×1
asp.net ×1
c# ×1
coding-style ×1
controller ×1
culture ×1
forms ×1
html ×1
razor ×1
routes ×1
textarea ×1
view ×1