在MVC3 ASPX中注册自定义控件局部视图

时间:2012-03-04 10:28:14

标签: asp.net-mvc asp.net-mvc-3 html-helper partial-views

我问了一个相关的问题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和我无法访问代码)?

2 个答案:

答案 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。