使用ASP.NET MVC 2在另一个UserControl中注册UserControl

时间:2010-12-11 09:15:22

标签: c# .net asp.net asp.net-mvc-2 user-controls

我想在另一个UserControl中注册一个UserControl,但我有一些错误,如:

  

控制'4_txtCount'的类型   必须放置'NumbericTextBox'   在runat = server。的表单标记内。

     

说明:未处理的异常   在执行期间发生   当前的网络请求。请查看   堆栈跟踪以获取更多信息   错误及其来源   代码。

     

例外详情:   System.Web.HttpException:Control   “NumbericTextBox”类型的“4_txtCount”   必须放在表格标签内   RUNAT =服务器

当我在UserControl中添加标签的服务器端时,我从未收到错误消息。

请注意,我已经在我的视图中添加了服务器端表单标记...

如何在UserControl中添加服务器端表单标签的情况下在另一个UserControl中注册和使用UserControl?

谢谢,Afshin

2 个答案:

答案 0 :(得分:2)

通过“UserControl”我假设您指的是部分视图。您在Partial View中使用的控件之一是ASP.NET Web窗体控件。您不能使用需要回发的控件。没有MVC视图应该需要表单runat = server标记。如果您尝试使用的控件不是为在MVC环境中使用而设计的,请考虑专门为该页面使用WebForm Routing(System.Web.Routing)创建路径:

http://msdn.microsoft.com/en-us/library/cc668202(v=vs.90).aspx

您可以修改RouteHandler构造函数以接受使用必要数据填充的对象。 ViewData字典在此上下文中不可用。

答案 1 :(得分:1)

您不需要用户控件中的form标记。

只需确保放置用户控件的结果页面在用户控件周围有一个form标记。

form标记可以放在ASPX页面或ASPX页面的母版页上。