Tag: asp.net mvc

在哪里写连接字符串? 在app.config或web.config中?

我正在开发MVC应用程序。 我的申请中有两个项目。 一个是MVC应用程序包含,Controller和Views,第二个是DataLayer项目。 我对编写连接字符串的位置感到困惑,因为在发布应用程序时它需要web.config文件,我从DataLayer项目获取数据,所以我应该在数据层的app.config / Web.config中添加连接字符串项目? 另外,想知道app.config和web.config之间的目的和区别是什么?

使用json传递关联数组:在控制器中期望哪种类型?

在客户端,我有一个关联数组,我存储“Guid” – “int”对。 我使用json将数组传递给服务器: $.ajax({ url: methodUrl, type: ‘POST’, async: false, data: { values: items }, dataType: ‘json’, success: function (data) { //… } }); 我尝试传递的对象看起来像这样(取自Chrome调试器): items: Object 44f871e0-daee-4e1b-94c3-76d633a87634: 1 698ce237-3e05-4f80-bb0d-de948c39cd96: 1 在控制器中我有一个方法 public ActionResult Method(Dictionary values) { } 但是,属性值保持为null。 只有客户端的Guids列表和控制器中的List一切正常。 我怀疑我应该为控制器中的值选择另一种类型,而不是字典。 我也尝试在ajax请求中添加“traditional:true”,但没有成功。 任何建议表示赞赏!

EF的DbContext的单例范围

所以我目前正在使用一个使用Entity Framework的ASP.NET MVC Web应用程序,我也使用Ninject进行dependency injection。 所以基本上,目前,这是我用Ninject注册我的DbContext和服务的方式。 kernel.Bind().To().InSingletonScope(); kernel.Bind().To().InSingletonScope(); kernel.Bind().To().InSingletonScope(); kernel.Bind().To().InSingletonScope(); 我用InSingletonScope注册它们,这意味着它们只会被创建一次并在应用程序的整个生命周期中使用(至少我是如何理解的)。 控制器: private IAccountService _accountService; public MemberController(IAccountService accountService) { _accountService = accountService; } 但是,我深深感到这个单例范围会导致我的Web应用程序出现问题,特别是对于Entity Framework的上下文,因为它是单例。 我已经面临一个小问题,如果我使用SQL Management Studio手动更新数据库,我的Web应用程序的entity framework中的数据将不会更新,直到我重新启动应用程序(似乎是EF中的一些缓存机制)。 – 但是,如果我删除InSingletonScope ,我将从EF中随机获取错误,说: IEntityChangeTracker的多个实例不能引用实体对象 我理解为什么会发生这种情况,因为AccountService初始化的DbContext可能与RegionService不同。 但我不知道如何解决这个问题。 我对dependency injection的理解仍然非常有限,所以有人可以建议吗? – 编辑:我已经尝试过更换为InRequestScope以进行所有注射,但我仍然InRequestScope IEntityChangeTracker的多个实例不能引用实体对象 尝试从我的应用程序中的另一个服务插入具有相关对象(外键)的新实体时。 这意味着他们仍在使用不同的DbContext,发生了什么?! 最后编辑:好的我发现了问题,这是我的缓存机制缓存了以前的请求,导致所有后续请求的关系问题。

使用Server.TransferRequest()传递视图模型

我正在尝试微调我的MVC应用程序中的error handling。 我在web.config中启用了自定义错误,并将以下代码添加到Application_Error 。 Global.asax中 protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError() as Exception; if (exception != null) { Context.ClearError(); Context.Response.TrySkipIisCustomErrors = true; string path = (exception is HttpException && (exception as HttpException).GetHttpCode() == 404) ? “~/Error/NotFound” : “~/Error/Index”; Context.Server.TransferRequest(path, false); } } ErrorController.cs [AllowAnonymous] public ActionResult Index() { Response.Clear(); Response.StatusCode […]

如何让Ace不再寻找当前目录中的主题和模式?

我一直在研究一个使用Cloud9提供的Ace浏览器代码编辑器的MVC Web应用程序。 ace.js脚本和设置ace编辑器的脚本都在我的BundleConfig上的ScriptBundle中。 捆绑正在装载完美。 在我的本地服务器上,在web.config中将debug设置为true,脚本运行得非常好。 但是,在web.config中启动调试设置为false的实时服务器后,出现了几个错误。 在修复了一些小故障后,仍有两个错误,我似乎无法理解其中的原因。 这两个错误看起来非常相似,因为它们是Ace的chrome主题和Ace的HTML模式脚本都没有找到404错误。 在设置编辑器的脚本中,它们的调用方式如下: editor.setTheme(“ace/theme/chrome”); editor.getSession().setMode(“ace/mode/html”); 在我的本地计算机上,将调试设置为true,主题和模式设置得非常好,一切都按计划运行。 但是,正如我所说,在调试设置为false的实时服务器上,因此缩小了ScriptBundles中的所有脚本,我得到主题和模式的404错误。 当我在谷歌浏览器中启动JavaScript控制台时,我被告知有两个404错误。 有关404错误的有趣之处在于它们链接到我正在查看的页面的当前目录,然后分别是“theme-chrome.js”和“mode-html.js”。 他们从来没有在那个目录中,但仍然没有。 所以我的问题是为什么脚本在缩小后开始在当前目录中查找它们的文件? 我该怎么做才能解决这个问题,这样我才能让它们在捆绑中保持简化,让它们有效? 或者有办法吗? 提前感谢您的帮助。

水晶报道。 使用MVC在Windows Server 2008中找不到“指定的路径”

这可以在计算机中正常工作,但是当我将其部署到客户端测试服务器时。 弹出此错误。 服务器是Windows Server 2008标准版。 我已经检查了rpt的路径并安装了CRV并允许所有人访问。 我花了差不多2天仍然找不到解决方案。 Server Error in ‘/QC’ Application. The system cannot find the path specified. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Runtime.InteropServices.COMException: The system […]

为什么MVC无国籍 – 如何解释?

同时向我的学生解释ASP.NET MVC的概念 MVC是无国籍的。 它建立在另一个无状态协议之上 – HTTP和HTTPS 但是一名学生打断了他的话, 你告诉MVC是无状态的 无状态协议从不关心响应是否从服务器返回。 但是,在ASP.NET MVC框架中,您发出请求并等待响应。 由于您等待响应,因此应将其称为有状态服务。 你怎么称它为无国籍服务呢? 我真的被困了,想知道该问题的答案。 有任何想法吗?

如何在asp.net mvc3中显示矩阵表?

我正在进行一个涉及使用entity framework和asp.net mvc3在矩阵视图中显示多对多关系数据库的小项目。 涉及的三个表是SalesPerson(行标签),产品(列标签)和销售: 如何在asp.net mvc3中开发/生成这种视图? @foreach (var m in Model) { foreach (var p in m.Products) { @p.ProductName } } @foreach (var m in Model) { foreach (var s in m.SalesPersons) { @s.PersonName } } @*Sales: a.Amount*@

为什么我不能从Controller初始化程序访问HttpContext?

我有一个这样的控制器设置: public class GenesisController : Controller { private string master; public string Master { get { return master; } } public GenesisController() { bool mobile = this.HttpContext.Request.Browser.IsMobileDevice; // this line errors if (mobile) master=”mobile”; else master=”site”; } } 我的所有其他控制器都inheritance自这个GenesisController。 每当我运行应用程序时,我都会收到此错误消息 Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. 如何从控制器初始化访问HttpContext?

使用asp.net mvc beta进行强类型的动作链接?

我曾经能够在预览3中执行以下操作 <%=Html.BuildUrlFromExpression(c => c.AnAction(par1, par2)%> 我应该如何使用MVC Beta以强类型方式创建url? 到目前为止,我发现的唯一的事情就是 当然,这不是强类型的。