2015-05-20 5 views
0

Я пишу приложение ReactJs с JSPM и много моих взглядов в конечном итоге выглядит как этотРеализовать ActionResult что просто пишет бритву _layout + константной строки тела

<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.

Есть ли у вас какие-либо намеки?

  • Замечу, что удобство не только причина, почему я хочу сделать это, я также делает модульную систему, что это будет работать особенно хорошо.

ответ

1

вы могли бы иметь вид LoadJSModule.cshtml в общий содержащий

@model string 
<script>System.import('@Model')</script> 

, а затем в возвращении контроллера View("LoadJSModule", "modulename")

Вы могли бы иметь метод в подклассе Controller все ваши контроллеры наследуют от

public ViewResult LoadJSModule(string modulename) { 
    return View("LoadJSModule", modulename); 
} 

для того, чтобы вернуть LoadJSModule("mymodule")

+0

Это неплохая идея ... поэтому у меня все еще есть cshtml где-то ... хммм. Я хотел бы посмотреть, как это сделать, не записывая файл вообще, но там, кажется, страшно. –

+0

Да, это довольно красиво, но MVC * встроен *, чтобы возвращать представления из контроллеров. Возможно, вы можете обойти это, но в нем осталось немного MVC, и это, вероятно, самый удобный способ сделать это в любом случае. Вы могли бы, но почему бы вам? – Martijn

+0

@Martijn это на самом деле не правда. В MVC много гибкости и настройки. JavascriptResult, ContentResult и т. Д. Не только виды. – Dismissile