我已经开发了一个简单的机制,我的mvc网站通过jquery拉入html然后填充指定的div。一切都很好,看起来很酷。
我的问题是,我现在创建html标记内的我的控制器(这是很容易做VB.net btw)我宁愿不混淆的关注的sepparation。
我的问题是,我现在创建html标记内的我的控制器(这是很容易做VB.net btw)我宁愿不混淆的关注的sepparation。
是否可以使用自定义的“MVC视图用户控件”来满足这种需要?我可以创建一个控件的实例,传递模型数据和渲染到HTML吗?这将是简单的渲染和传回到调用浏览器的问题。
解决方法
您有几个选项。
在视图的控制器中创建一个MVC视图用户控件和操作处理程序。渲染视图使用
<% Html.RenderPartial("MyControl") %>
在这种情况下,您的操作处理程序将需要将模型数据传递到视图
public ActionResult MyControl () { // get modelData render View (modelData); }
您的另一个选项是从父页面传递模型数据。在这种情况下,您不需要操作处理程序,并且模型类型与父代相同:
<% Html.RenderPartial("MyControl",ViewData.Model) %>
在MyControl.ascx.cs中:
public class MyControlViewData { public string Name { get; set; } public string Email { get; set; } } public partial class MyControl : System.Web.Mvc.ViewUserControl <MyControlViewData> { }
在您的页面中,您可以初始化您的控件的数据模型:
<% Html.RenderPartial("MyControl",new MyControlViewData () { Name= ViewData.Model.FirstName,Email = ViewData.Model.Email,}); %>