tym*_*eJV 7 asp.net asp.net-mvc-4 reactjs reactjs.net
我试图通过System.Web.Optimization.React使用ASP.NET Minification和Optimization来缩小我的.JSX文件.我已经安装了MVC4 React Package以及Optimization包,但每当我尝试包含一个bundle时,我都会得到以下内容:
React.TinyIoC.TinyIoCResolutionException: Unable to resolve type: React.IReactEnvironment
Run Code Online (Sandbox Code Playgroud)
InnerException总是如此 null
我的包装设置如下:
bundles.Add(new ScriptBundle("~/Bundle/Scripts/ReactJS").Include(
"~/Scripts/React/react-0.12.2.js",
"~/Scripts/React/react-with-addons-0.12.2.js",
"~/Scripts/React/JSXTransformer-0.12.2.js"
));
bundles.Add(new JsxBundle("~/Bundle/Scripts/ReactCalendar").Include(
"~/Scripts/React/Calendar/Main.react.jsx",
"~/Scripts/React/Calendar/Components/Calendar.react.jsx",
"~/Scripts/React/Calendar/Components/CalendarEvent.react.jsx",
"~/Scripts/React/Calendar/Components/CalendarControls.react.jsx",
"~/Scripts/React/Calendar/Components/CalendarTimeSlots.react.jsx"
));
Run Code Online (Sandbox Code Playgroud)
并包含在视图中:
@section scripts{
@Scripts.Render("~/Bundle/Scripts/ReactJS");
@Scripts.Render("~/Bundle/Scripts/ReactCalendar");
}
Run Code Online (Sandbox Code Playgroud)
错误始终在线:
@Scripts.Render("~/Bundle/Scripts/ReactCalendar");
Run Code Online (Sandbox Code Playgroud)
任何人对如何解决/调试这个有任何想法?如果需要更多信息,请与我们联系.
我不确定这是否是我面临的同一问题,但我用谷歌搜索了完全相同的错误,发现这个主题作为第一个命中,没有明确的答案,所以我想我会提供我的解决方案。
我在 MVC 应用程序中使用 .NET 4.5 和 React.Web.Mvc4 v3.0.0。
我在 Github 上的评论的帮助下成功解决了这个问题。
这是我的全部ReactConfig.cs:
using React;
using React.TinyIoC;
using React.Web.TinyIoC;
namespace NS.Project
{
public static class ReactConfig
{
public static void Configure()
{
Initializer.Initialize(AsPerRequestSingleton);
ReactSiteConfiguration.Configuration
.SetLoadBabel(false)
.AddScriptWithoutTransform("~/React/dist/server.bundle.js");
}
private static TinyIoCContainer.RegisterOptions AsPerRequestSingleton(
TinyIoCContainer.RegisterOptions registerOptions)
{
return TinyIoCContainer.RegisterOptions.ToCustomLifetimeManager(
registerOptions,
new HttpContextLifetimeProvider(),
"per request singleton"
);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我ReactConfig.Configure从 明确调用Application_Start。
“无法解析类型:React.IReactEnvironment ”且没有 InnerException 通常意味着 ReactJS.NET 由于某种原因未正确初始化。在 Web 应用程序中,ReactJS.NET 通过使用WebActivator来处理初始化。确保您的项目正在引用React.Web、React.Web.Mvc4和WebActivatorEx,并且所有相应的 .dll 文件最终都位于您的应用程序bin目录中。
此外,您不需要(也不应该)在 JavaScript 包中包含 JSXTransformer,因为 ReactJS.NET 在服务器端完成所有 JSX 编译。
| 归档时间: |
|
| 查看次数: |
4850 次 |
| 最近记录: |