当前位置: 移动技术网 > IT编程>开发语言>.net > .NET MVC后台获得VIEW对应的html

.NET MVC后台获得VIEW对应的html

2019年10月22日  | 移动技术网IT编程  | 我要评论

艺术类考前培训,吉林省四平市邮编,谢谢爱歌词

一、.net core mvc下获得

    建立一个帮助类,如下:

using microsoft.aspnetcore.mvc;
using microsoft.aspnetcore.mvc.rendering;
using microsoft.aspnetcore.mvc.viewengines;
using microsoft.aspnetcore.mvc.viewfeatures;
using system;
using system.collections.generic;
using system.io;
using system.linq;
using system.threading.tasks;

namespace netcoreportal.models
{
    public class viewhtmlhelper
    {
        public static string converttostring(controller controller, string viewname, object viewmodel, bool ismainpage)
        {
            controller.viewdata.model = viewmodel;
            using (stringwriter sw = new stringwriter())
            {
                iviewengine viewengine = controller.httpcontext.requestservices.getservice(typeof(icompositeviewengine)) as icompositeviewengine;
                viewengineresult viewengineresult = viewengine.findview(controller.controllercontext, viewname, ismainpage);
                if (viewengineresult.success)
                {
                    viewcontext viewcontext = new viewcontext(
                        controller.controllercontext,
                        viewengineresult.view,
                        controller.viewdata,
                        controller.tempdata,
                       sw,
                       new htmlhelperoptions()
                        );
                    viewengineresult.view.renderasync(viewcontext);
                    return sw.getstringbuilder().tostring();
                }
                else
                {
                    return $"视图{viewname}不存在";
                }
            }
        }
    }
}

    后台调用方法

public contentresult viewtostringdemo()
{
    string strview = viewhtmlhelper.converttostring(this, "index", "", true);
    return content(strview);
}

 参考自:

 

二、.net mvc下获得

/// <summary>
/// 获得laytreegrid视图的html内容
/// </summary>
/// <returns></returns>
public contentresult viewtext()
{
     string html = string.empty;
     iview view = viewengines.engines.findview(this.controllercontext, "laytreegrid", null).view;

     viewdatadictionary vdd = new viewdatadictionary();
     tempdatadictionary tdd = new tempdatadictionary();
     using (system.io.stringwriter sw = new system.io.stringwriter())
     {
         viewcontext viewcontext = new viewcontext(this.controllercontext, view, vdd, tdd, sw);
         viewcontext.view.render(viewcontext, sw);
         html = sw.tostring();
     }
     return content(html);
}

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网