asp.net-mvc – ASP.NET MVC编辑器 – 模板/ UIHint与参数
发布时间:2020-12-15 19:41:42 所属栏目:asp.Net 来源:网络整理
导读:在过去,我一直使用编辑器模板,通过应用以下数据注释: [UIHint("SomeTemplate")] ViewModel: public class MicroViewModel { public IEnumerableLabMicro Micros { get; set; } [UIHint("DateTime")] public DateTime Date { get; set; } public int Case
在过去,我一直使用编辑器模板,通过应用以下数据注释:
[UIHint("SomeTemplate")] ViewModel: 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部分视图? (像Id一样,有一个自动完成的编辑器模板,将采取一个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] } })); } }) } }); 解决方法
您可以使用AdditionalMetadata属性:
[UIHint("DateTime")] [AdditionalMetadata("foo","bar")] public DateTime Date { get; set; } 并在模板中: @ViewData.ModelMetadata.AdditionalValues["foo"] 所以如果你想传递一个url: [UIHint("DateTime")] [AdditionalMetadata("controller","somecontroller")] [AdditionalMetadata("action","someaction")] [AdditionalMetadata("property","someproperty")] public DateTime Date { get; set; } 并在您的模板: @{ 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"])',success: function (data) { response( $.map(eval(data),function (item) { return { label: item['@values["property"]'] } }) ); } }); } }); </script> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用URL Rewrite和404.aspx时的回发问题
- asp.net – 在IIS7.5中什么模块删除了400个错误请求的正文
- 为什么ASP.NET抛出这么多异常?
- asp.net – 自定义协议MVC Redirect在Chrome中工作但不在IE
- asp.net-mvc-3 – ASP.NET MVC 3和App_Code文件夹
- 什么是最好的ASP.NET性能计数器来监视?
- asp.net-core – Netcore 2.1.1版本导致应用程序无法运行
- ASP.NET 将字节大小转换为适合阅读的格式M,G,T
- asp.net-mvc – Visual Studio 2010 Web发布缺少一个文件
- asp.net-mvc – ASP.NET MVC框架中的MVVM和ModelBinders