Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何将动态加载的webforms usercontrol转换为mvc razor_Asp.net_Asp.net Mvc_Razor - Fatal编程技术网

Asp.net 如何将动态加载的webforms usercontrol转换为mvc razor

Asp.net 如何将动态加载的webforms usercontrol转换为mvc razor,asp.net,asp.net-mvc,razor,Asp.net,Asp.net Mvc,Razor,我正在将一个用webforms编写的现有定制CMS移植到MVC4,理想情况下保持CMS数据库模式和数据的完整性。我使用url来确定请求哪个页面以及使用哪个模板。模板主要用于不同的布局和内容“字段” 在我的webforms应用程序中,我有一个基类PageTemplate:UserControl 我有一个default.aspx,它查看请求的路径,从db中提取请求,然后使用TemplateId属性动态加载usercontrol,将db内容添加到属性,然后添加到页面上的占位符 p = CMSPage.

我正在将一个用webforms编写的现有定制CMS移植到MVC4,理想情况下保持CMS数据库模式和数据的完整性。我使用url来确定请求哪个页面以及使用哪个模板。模板主要用于不同的布局和内容“字段”

在我的webforms应用程序中,我有一个基类
PageTemplate:UserControl

我有一个default.aspx,它查看请求的路径,从db中提取请求,然后使用TemplateId属性动态加载usercontrol,将db内容添加到属性,然后添加到页面上的占位符

p = CMSPage.Select(fullPath);
myTemplate = LoadControl("~/templates/template_" + p.TemplateId.ToString + ".ascx");
myTemplate.Content = p;
phTemplate.Controls.Add(myTemplate);
在usercontrols
Init
事件中,我用CMS中的内容填充文字标记-这意味着我可以拥有服务器控件按钮和交互,并且仍然处理回发-所有这些都封装在usercontrol中

我有大约20个模板,大多数只是渲染,一些是交互式的。我想迁移到Razor作为视图引擎

1) 基于动态内容加载PartialView并将CMS内容作为模型传递给视图的最佳MVC方式是什么?它是一个单独的CMSpage控制器,每个模板都有一部分吗?还是每个模板的控制器

2) 在单个CMS控制器上,从模板部分:方法中处理帖子的最结构化的MVC方式是什么?每个模板的控制器

3) 伪代码欢迎

提前谢谢

  • 您可以采用与用户控制方法类似的方法。重定向到一个操作方法,该方法根据模板ID选择要返回的部分视图。该操作方法可以获取部分ID并执行
    返回部分视图(“视图”+模板ID.ToString())。还可以使用
    Html.Action
    从视图中动态加载部分视图。如果您需要动态内容加载,也可以使用JQuery使用$.ajax加载部分视图并将其流式传输到客户端
  • 在部分视图中定义表单,或者使用一个接受FormCollection的全局部分视图(引用回发表单的通用方法)。您可以使用一些返回的ID来计算模板响应。如果可以,在模板中包含表单可能会更好,也更容易配置。然而,后者会更复杂,但是如果你想要一个通用的CMS解决方案,后者是实现这一点的一种方法

  • 这方面没有一刀切的解决方案;很难只看一眼产品就提供建议。

    谢谢Brian。您会建议在单个CMS控制器中使用单独的操作方法来处理表单帖子,还是将其拆分为多个控制器?