【问题标题】:Can I have non html-based View in Asp.Net MVC?我可以在 Asp.Net MVC 中使用非基于 html 的视图吗?
【发布时间】:2014-04-28 01:37:19
【问题描述】:

asp.net mvc 是否支持其他视图而不是 html?我可以有 Xml 视图吗?还是文本视图?在 .csxml、cstxt 等文件中?然后用 Razor 引擎/语法和模型数据填充它们,就像我使用 .cshtml 并返回正确的 mime 类型一样?

更新:我的问题不是关于如何从 asp.net mvc 返回文本或 xml。我想使用视图引擎来填充它们。

Update2:具体来说,我想知道我是否可以有 2 个不同的视图采用相同的模型:

第一个是html:

<html>
<body>
<div>First Name: @Model.FirstName, Last Name: @Model.LastName</div>
</body>
</html>

第二个 xml 视图视图

<?xml version="1.0" encoding="utf-8"?>
<root>
<FirstName>@Model.FirstName</FirstName>
<LastName>@Model.LastName</LastName>
</root>

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    您可以使用 JsonResult 返回 json,使用 FileResult 返回文件(从驱动器或字节数组),或者返回您自己的从 ActionResult 派生的结果 (like xml)。由于您不清楚自己真正想要什么,这可能是我能做的最好的。

    【讨论】:

    • 我知道我想要什么 - Xml 输出,其中一些值由我的模型中的 razor 视图引擎填充,与获取 html 的方式相同。
    • 您想将 HTML 放入 XML 中吗?再说一次,你没有很好地描述你真正想要的东西。
    • 我不想要任何 html。我想让 xml(或文本)视图/模板和 razor 填充它,然后 asp.net 用适当的 mime 类型返回它。
    • Razor 不是 return nothing 类型的模板引擎,它是一个 html 模板引擎。为 xml 编写自己的模板引擎听起来是个糟糕的主意。由于 XML 不包含外部内容(图像、css、javscript 等),因此您最好将数据转换、将其序列化为 XML 并返回它。
    • 无论如何,我知道 razor 可以在 asp.net mvc 之外用于任何类型的视图,而不仅仅是 html。现在我想在 asp.net mvc 中使用它来实现更广泛的目的。
    猜你喜欢
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多