加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 从控制器内部获取部分视图的HTML

发布时间:2020-12-15 19:04:39 所属栏目:asp.Net 来源:网络整理
导读:我已经开发了一个简单的机制,我的mvc网站通过jquery拉入html然后填充指定的div。一切都很好,看起来很酷。 我的问题是,我现在创建html标记内的我的控制器(这是很容易做VB.net btw)我宁愿不混淆的关注的sepparation。 是否可以使用自定义的“MVC视图用户控
我已经开发了一个简单的机制,我的mvc网站通过jquery拉入html然后填充指定的div。一切都很好,看起来很酷。
我的问题是,我现在创建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,});
 %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读