我问了一个相关的问题here,因为我发现在Razor视图中无法使用自定义控件,所以我可以添加新的ASPX局部视图来使用自定义控件,我的自定义控件是一个dll,我添加到References然后定义部分视图如下:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %>
<%@ Register Assembly="JQControls" Namespace="JQControls" TagPrefix="PersianDatepicker" %>
<PersianDatepicker:JQLoader ID="jqdb" runat="server" />
<PersianDatepicker:JQDatePicker ID="jqdp1" runat="server" Regional="fa" />
我在ASPX Web表单中编写了确切的代码并且工作正常,但MVC中有一个例外:
Error executing child request for handler
'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper'.
Exception of type 'System.Web.HttpUnhandledException' was thrown.
Object reference not set to an instance of an object.
那么有人对此有任何想法吗?
另一个问题是如何为此用户控件定义Html Helper(使用dll和我无法访问代码)?
答案 0 :(得分:2)
在视图中创建一个html iframe,加载一个aspx页面!
答案 1 :(得分:0)
MVC模板中的“视图”应该是标准的HTML表单。
您可以使用“Helper”生成复杂/可重复使用的HTML输出,但在UI中使用任何标准的HTML + Javascript都是“MVC”的工作方式。
MVC允许并行编码和HTML开发。任何了解HTML + JS的开发人员都可以创建“查看”而不会弄乱您的代码。
这个jquery插件http://jqueryui.com/demos/datepicker/可以在客户端浏览器上创建自定义DatePicker。