Roh*_*ner 40 asp.net-mvc asp.net-mvc-3 asp.net-mvc-4
通过应用以下数据注释,我过去一直在使用编辑器模板:
[UIHint("SomeTemplate")]
Run Code Online (Sandbox Code Playgroud)
视图模型:
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; }
}
Run Code Online (Sandbox Code Playgroud)
如果我想使用特定的日期选择器控件而不是常规日期选择器控件,则可以按如下方式实现.
例:
@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>
Run Code Online (Sandbox Code Playgroud)
对于我的ID字段,我想使用jQuery自动完成组件.
题:
我怎么会去传递附加参数的UIHint
局部视图LabSampleTypeID
和LabSampleDetailID
?(因为我想拥有一个自动完成的编辑器模板,例如以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]
}
}));
}
})
}
});
Run Code Online (Sandbox Code Playgroud)
Dar*_*rov 75
您可以使用以下AdditionalMetadata
属性:
[UIHint("DateTime")]
[AdditionalMetadata("foo", "bar")]
public DateTime Date { get; set; }
Run Code Online (Sandbox Code Playgroud)
并在模板中:
@ViewData.ModelMetadata.AdditionalValues["foo"]
Run Code Online (Sandbox Code Playgroud)
所以,如果你想传递一个网址:
[UIHint("DateTime")]
[AdditionalMetadata("controller", "somecontroller")]
[AdditionalMetadata("action", "someaction")]
[AdditionalMetadata("property", "someproperty")]
public DateTime Date { get; set; }
Run Code Online (Sandbox Code Playgroud)
并在您的模板中:
@{
var values = ViewData.ModelMetadata.AdditionalValues;
}
<script type="text/javascript">
$('.auto').autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action((string)values["action"], (string)values["controller"])',
dataType: "json",
data: {
filter: request.term
},
success: function (data) {
response(
$.map(eval(data), function (item) {
return {
label: item['@values["property"]']
}
})
);
}
});
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15657 次 |
最近记录: |