【发布时间】:2023-03-11 05:01:01
【问题描述】:
过去我一直在使用 Editor-Templates,方法是应用以下数据注释:
[UIHint("SomeTemplate")]
视图模型:
public class MicroViewModel
{
public IEnumerable<LabMicro> Micros { get; set; }
[UIHint("DateTime")]
public DateTime Date { get; set; }
public int CaseNo { get; set; }
[UIHint("SampleTypes")]
public int LabSampleTypeID { get; set; }
[UIHint("SampleDetails")]
public int LabSampleDetailID { get; set; }
}
如果我想使用特定的日期选择器控件而不是常规控件,可以按如下方式实现。
示例:
@model DateTime?
@Html.TextBox("", String.Format("{0:yyyy-MM-dd}", Model.HasValue ?
Model : DateTime.Today), new { @class = "dp", style="width:100px" })
<script type="text/javascript">
$(document).ready(function () {
$(".dp").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd'
});
});
</script>
对于我的 ID 字段,我想使用 jQuery 自动完成组件。
问题:
对于LabSampleTypeID 和LabSampleDetailID,我将如何将其他参数传递给UIHint 部分视图? (因为我希望有一个自动完成的编辑器模板,例如,它将采用 URL 和属性名称)
我认为我的自动完成编辑器模板/部分应该是这样的:
$(".auto").autocomplete({
source: function(request, response) {
$.ajax({
url: '[#URL_TO_USE]',
dataType: "json",
data: {
filter: request.term
},
success: function(data) {
response($.map(eval(data), function(item) {
return {
label: item.[#PROPERTY_TO_USE]
}
}));
}
})
}
});
【问题讨论】:
-
仅供参考,您不需要 DateTime 的 UIHint。它已经是一个DateTime,所以它已经使用了一个DateTime.cshtml 模板(如果它存在的话)。对于与模板名称不同类型的其他名称,您确实需要它。
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4