实现仅写入剃刀 _Layout + const 字符串主体的 ActionResult
Implement ActionResult that just writes the razor _Layout + a const string body
我正在用 jspm 编写一个 ReactJs 应用程序,我的很多视图最终看起来像这样
<script>System.import('customers')</script>
或
<script>System.import('invoicing')</script>
所以发送到浏览器的是 _Layout.cshtml
(由 _ViewStart.cshtml` 定义)和那个简单的正文。
由于这里几乎没有差异,我想根本不必创建视图文件(这还有其他原因)。我希望能够做到
return new LoadJsModuleResult('customers');
或
return new LoadJsModuleResult('invoicing');
我将如何写 LoadJsModuleResult
?
我正在查看 ViewResult
和 ViewEngineResult
的来源,但似乎那时一切都已经组装好,组装发生在 ViewEngineCollection
的某个地方。我可以追踪到 BuildManagerWrapper.GetCompiledType
但随后我们进入 System.Web
.
的深处
有人有什么提示吗?
- 我会注意到,方便并不是我想这样做的 唯一 原因,我还在制作一个模块系统,它会特别好用。
您可以在包含
的共享中查看 LoadJSModule.cshtml
@model string
<script>System.import('@Model')</script>
然后在你的控制器中 return View("LoadJSModule", "modulename")
您可以在 Controller
子类中拥有一个方法,所有控制器都继承自
public ViewResult LoadJSModule(string modulename) {
return View("LoadJSModule", modulename);
}
所以你可以 return LoadJSModule("mymodule")
我正在用 jspm 编写一个 ReactJs 应用程序,我的很多视图最终看起来像这样
<script>System.import('customers')</script>
或
<script>System.import('invoicing')</script>
所以发送到浏览器的是 _Layout.cshtml
(由 _ViewStart.cshtml` 定义)和那个简单的正文。
由于这里几乎没有差异,我想根本不必创建视图文件(这还有其他原因)。我希望能够做到
return new LoadJsModuleResult('customers');
或
return new LoadJsModuleResult('invoicing');
我将如何写 LoadJsModuleResult
?
我正在查看 ViewResult
和 ViewEngineResult
的来源,但似乎那时一切都已经组装好,组装发生在 ViewEngineCollection
的某个地方。我可以追踪到 BuildManagerWrapper.GetCompiledType
但随后我们进入 System.Web
.
有人有什么提示吗?
- 我会注意到,方便并不是我想这样做的 唯一 原因,我还在制作一个模块系统,它会特别好用。
您可以在包含
的共享中查看 LoadJSModule.cshtml@model string
<script>System.import('@Model')</script>
然后在你的控制器中 return View("LoadJSModule", "modulename")
您可以在 Controller
子类中拥有一个方法,所有控制器都继承自
public ViewResult LoadJSModule(string modulename) {
return View("LoadJSModule", modulename);
}
所以你可以 return LoadJSModule("mymodule")