gpt4 book ai didi

asp.net-mvc - 理解 asp.net mvc IView 和 IView.Render

转载 作者:行者123 更新时间:2023-12-02 05:13:41 28 4
gpt4 key购买 nike

我正在尝试设计一种方法来执行非常简单的 asp.net mvc 插件,但主要是我试图了解 View 渲染的工作原理。

我已经将我的问题归结为这个

public class CustomView : IView
{
public void Render(ViewContext viewContext, TextWriter writer)
{
writer.Write( /* string to render */);
}
}

现在,在该写入方法中,我可以将任何字符串呈现给 View ,但是当我在其中放置一行代码时用 <% %> 包裹,它按字面意思将代码呈现给 View ,而不是解析并执行它。我试过将 <% @Page ... 之类的东西添加到字符串的开头,它也只是按字面意思呈现。

在许多尝试中,我目前在 Controller 操作中以这种方式调用它:

...
CustomView customView = new CustomView();

ViewResult result = new ViewResult();
result.View = customView;
result.ViewName = "Index.aspx";
result.MasterName = "";
return result;

我错过了什么或做错了什么导致这行不通? ViewResult 的 ViewEngines 集合中似乎有 WebFormViewEngine。

我只是想了解这一点,在将其剥离到我认为应该是最低限度的情况下,它的行为并不像我认为的那样。我猜机器的其他部分涉及/缺失,但我不知道是什么。

最佳答案

<% %> 构造专门由 ASP.NET WebForms 使用。编译基于 WebForms 的页面(标准 ASP.NET 页面或 MVC View )时,它会创建一个包含类的新程序集,编译器使用这些 ASP.NET 标记来生成类的各个方面(比如哪里做Response.Write,哪里导入命名空间等)

你在上面所做的是直接将文本输出为 View ,因此它不会参与编译过程。

我可以看到它如何与您的上述解决方案一起工作的唯一方法是在网站中创建一个新的物理 .aspx 文件,以便在访问时对其进行编译。

您的具体目标是什么,我们或许可以提供建议...

关于asp.net-mvc - 理解 asp.net mvc IView 和 IView.Render,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3058880/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com