有没有办法使用@ Html.EditorFor 编写Html5占位符,或者我应该只使用TextBoxFor扩展名,即
@Html.TextBoxFor(model => model.Title, new { @placeholder = "Enter title here"})
Run Code Online (Sandbox Code Playgroud)
或者编写我们自己的自定义扩展是否有意义,可以通过DataAnnotations使用"描述"显示属性(类似于此)?
当然,同样的问题也适用于'自动对焦'.
有一个表单,用户可以在其中输入事件的开始日期/时间和结束日期/时间.到目前为止,这是验证器:
public class EventModelValidator : AbstractValidator<EventViewModel>
{
public EventModelValidator()
{
RuleFor(x => x.StartDate)
.NotEmpty().WithMessage("Date is required!")
.Must(BeAValidDate).WithMessage("Invalid date");
RuleFor(x => x.StartTime)
.NotEmpty().WithMessage("Start time is required!")
.Must(BeAValidTime).WithMessage("Invalid Start time");
RuleFor(x => x.EndTime)
.NotEmpty().WithMessage("End time is required!")
.Must(BeAValidTime).WithMessage("Invalid End time");
RuleFor(x => x.Title).NotEmpty().WithMessage("A title is required!");
}
private bool BeAValidDate(string value)
{
DateTime date;
return DateTime.TryParse(value, out date);
}
private bool BeAValidTime(string value)
{
DateTimeOffset offset;
return DateTimeOffset.TryParse(value, out offset);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我还想添加EndDateTime> StartDateTime(组合日期+时间属性)的验证,但不知道如何去做.
编辑: 为了澄清,我需要以某种方式结合EndDate + EndTime/StartDate + StartTime即DateTime.Parse(src.StartDate +""+ src.StartTime),然后验证EndDateTime与StartDateTime …
在.NET MVC项目中使用jQuery不显眼的验证,似乎工作正常.我正在尝试在字段正确验证(客户端和/或远程)时显示绿色复选标记.
这是一个示例字段声明:
<div class="clearfix">
@Html.LabelFor(model => model.Address1, "Street")
<div class="input">
@Html.TextBoxFor(model => model.Address1, new { @class = "xlarge", @maxlength = "100", @placeholder = "e.g. 123 Main St" })
<span class="help-message">
@Html.ValidationMessageFor(model => model.Address1)
<span class="isaok">Looks great.</span>
</span>
<span class="help-block">Enter the street.</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想要做的是在"span.isaok"中添加一个"有效"类,后者又有一个背景图像的复选标记.
我尝试使用高亮/不亮:
$.validator.setDefaults({
onkeyup: false,
highlight: function (element, errorClass, validClass) {
$(element).addClass(errorClass).removeClass(validClass);
$(element.form).find("label[for=" + element.id + "]").addClass("error");
$(element).parent().find("span.isaok").removeClass("active");
},
unhighlight: function (element, errorClass, validClass) {
$(element).removeClass(errorClass).addClass(validClass);
$(element.form).find("label[for=" + element.id + "]").removeClass("error");
if ($(element).val().length > 0) { …Run Code Online (Sandbox Code Playgroud) 新手到LINQ,并尝试编写以下查询...
select
f.Section_ID,
f.Page_ID,
f.SortOrder,
f.Type
from
(
select
Section_ID,
min(SortOrder) as minSortOrder
from
ContentPages
group by
Section_ID
) as x
inner join
ContentPages as f on
f.Section_ID = x.Section_ID and
f.SortOrder = x.minSortOrder;
Run Code Online (Sandbox Code Playgroud)
笔记:
表:第
SECTION_ID ....名称....... SortOrder的
.... 1 .........一.......... 1 ......
. ...... 2 .........两个.......... 3 ......
.... 3 .........三...... .... 2 ......
表:ContentPage
Page_ID ....... Section_ID .......标题.............. SortOrder
.... 11 .......... ...... 1 .......... Page One ............. 1 ......
.... 12 ......... .... …
我在我的网站上的各种视图中使用了一些jQuery插件.在某些情况下,使用document.ready在页面加载时在外部javascript内初始化插件.在其他情况下,初始化在另一个插件的回调fn内完成,或者可能在ajax调用重新加载局部视图之后完成.
我发现我在多个地方复制粘贴相同的插件初始化代码段,具体取决于它需要初始化的方式/位置.
用一个例子说明这一点:
情况1:FullCalendar使用qTip,而qTip又使用扩展器插件
$(function () {
$('#calendar').fullCalendar({ // calendar
.. snip ..
eventRender: function (calEvent, element) { // render qtip on eventRender
element.qtip({
...snip...
events: {
....snip....
render: function () {// initialize expander on callback
// SNIPPET start
$('div.expandable').expander({
expandPrefix: '',
expandText: '[...]',
userCollapseText: '[less]',
preserveWords: true,
widow: 4
});
// SNIPPET end
}
}
Run Code Online (Sandbox Code Playgroud)
案例2:通过ajax加载的部分视图
$(document).ready(function () {
// SAME SNIPPET start
$('div.expandable').expander({
expandPrefix: '',
expandText: '[...]',
userCollapseText: '[less]',
preserveWords: …Run Code Online (Sandbox Code Playgroud)