我已经build立了一个SignalR集线器来在服务器和客户端之间进行通信。 中心服务器端代码存储在一个名为Hooking.cs的类中。 我想要的是能够调用Hooking.cs中定义的方法,以允许我从应用程序中的任何地方向任何连接的客户端广播消息。 看起来,每个客户端/服务器调用都会创build一个Hooking.cs的新实例,所以我希望能够使用类似于 var hooking = new Hooking(); hooking.Test(); 用Hooking.cs中定义的方法Test(),如 public static void Test() { Clients.test() } 并与一个客户端JavaScript var hooking = $.connection.hooking; hooking.test = function() { alert("test worked"); }; $.connection.hub.start() 不幸的是,并不是那么简单,因为客户端不是静态的,所以不能从静态方法访问。 通过SignalR源代码来看,我遇到了一个看起来很有前途的方法, Hubs.Invoke(string hubName, string method, params object[] args) ,所以我希望我可以使用诸如Hubs.Invoke("Hooking", "Test")但我不能让它工作。 任何帮助,将非常感激
在我的一些版本中,我有这个恼人的错误。 项目中没有错误,因为如果我再次构build,那么问题就会消失。 该消息仅在网站部署到Windows 2008 Server时才会显示。 我首先想到这可能是临时文件的问题,但事实并非如此。 我将这个版本部署到了一个不同的网站,并且仍然出现错误。 该错误出现在网站的随机操作上。 大部分时间构build都可以,但是每个第三或第四个构build都会产生运行时错误。 我在发布模式下使用WebdeploymentProject构build。 视图是预编译的。 这不是在ASP.NET MVC中,当使用正确的types对象呈现页面时,我遇到了错误的types错误 ,因为视图具有完全不同的名称。 我怎样才能debugging这个问题,或者我可以如何得到这个帮助? 这是我的WebDeploymentProject <!– Microsoft Visual Studio 2008 Web Deployment Project http://go.microsoft.com/fwlink/?LinkID=104956 –> <Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>9.0.21022</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{E5E14CEB-0BCD-4203-9A5A-34ABA9C717EA}</ProjectGuid> <SourceWebPhysicalPath>..\B2CWeb</SourceWebPhysicalPath> <SourceWebProject>{3E632DB6-6DB3-4BD0-8CCA-12DE67165B48}|B2CWeb\B2CWeb.csproj</SourceWebProject> <SourceWebVirtualPath>/B2CWeb.csproj</SourceWebVirtualPath> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == […]
我在部署我的应用程序时遇到了一些问题,在进行疑难解答时,我遇到了Views文件夹中的Web.Config文件。 为了尽量缩小对我的问题来源的可能性,我试图找出〜Web.Config文件的目的,但是不能真正find很多信息。 所以基本上我的问题是: Web.config文件在MVC项目的Views文件夹中做什么? 需要吗? 在Asp.Net webforms中,我相信要在文件夹中使用单独的web.config文件,该文件夹必须在IIS中设置为虚拟文件夹。 这是在MVC的情况下(即Views文件夹需要configuration为虚拟文件夹)?
我正在经历一个大的MVC应用程序的重构/速度调整。 它已经被部署到生产了几个月了,我开始在连接池中等待连接。 我跟踪了这个问题,直到没有妥善处理的连接。 有鉴于此,我已经把这个变化交给了我的基础控制者: public class MyBaseController : Controller { private ConfigurationManager configManager; // Manages the data context. public MyBaseController() { configManager = new ConfigurationManager(); } protected override void Dispose(bool disposing) { if (disposing) { if (this.configManager != null) { this.configManager.Dispose(); this.configManager = null; } } base.Dispose(disposing); } } 现在我有两个问题: 我介绍一个竞赛条件? 由于configManagerpipe理将IQueryable<>参数公开给视图的DataContext ,所以我需要确保在视图完成呈现之前不会在控制器上调用Dispose() 。 视图呈现之前或之后,MVC框架是否在Controller上调用Dispose() […]
@* Omitted code.. *@ @RenderBody() @RenderSection("Sidebar", required: false) 有没有什么办法可以知道在Omitted code部分是否存在RenderSection Sidebar ?
如何从ASP.NET MVC Web API控制器返回HTML? 我试了下面的代码,但得到编译错误,因为Response.Write没有定义: public class MyController : ApiController { [HttpPost] public HttpResponseMessage Post() { Response.Write("<p>Test</p>"); return Request.CreateResponse(HttpStatusCode.OK); } }
我试图发布一个MVC网站作为一个Azure的webrole。 当我在本地运行它时,一切正常。 但是,一旦我发布到Azure,并冲浪到一些MVC行动,我得到这个错误: “/”应用程序中的服务器错误。 运行时错误 说明:处理您的请求时发生exception。 此外,执行第一个exception的自定义错误页面时发生另一个exception。 该请求已被终止。 我不明白error handling程序如何能够遇到一个exception,因为错误是以默认方式处理的: public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } } 这是我的web.config: <?xml version="1.0"?> <configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> […]
我希望能够请求位于~/Views文件夹中的静态.html文件。 根据文档,路由系统在评估应用的路由之前检查URL是否与磁盘文件匹配。 但是,当我要求文件404错误出现。 我的文件位于〜/ Views文件夹中。 URL是: http://[localhost]/Views/HtmlPage1.html 我错过了什么?
我想知道什么是在部分视图中包含JavaScript文件的最佳做法。 一旦呈现这将最终作为一个JS包括在我的网页的HTML中间标记。 从我的观点来看,这不是一个很好的做法。 他们属于头标,因此不应该阻止浏览器一次呈现HTML。 一个例子:我在'PictureGallery'部分视图内使用jquery picturegallery插件,因为这个部分视图将在几个页面上使用。 这个插件只需要在使用这个视图的时候加载,而且我不想知道每个部分视图正在使用哪个插件。 感谢您的回答。
我正在寻找跨域返回一些JSON,我知道这样做是通过JSONP,而不是纯粹的JSON。 我正在使用ASP.net MVC所以我只想扩展JSONResulttypes,然后extendig控制器,以便它也实现了Jsonp方法。 这是最好的方式去做,或者有一个内置的ActionResult,可能会更好? 编辑:我继续做了。 仅供参考,我添加了一个新的结果: public class JsonpResult : System.Web.Mvc.JsonResult { public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } HttpResponseBase response = context.HttpContext.Response; if (!String.IsNullOrEmpty(ContentType)) { response.ContentType = ContentType; } else { response.ContentType = "application/javascript"; } if (ContentEncoding != null) { response.ContentEncoding = ContentEncoding; } if (Data […]