Tag: asp.net mvc

使用MySqlentity framework4和Code-First Development CTP

我以为我会用Scott Guthrie在Entity Framework 4的代码优先的开发中的最新post进行实验。而不是使用Sql Server,我试图使用MySql。 这里是我的web.config(这是一个Asp.Net MVC 2应用程序)的相关部分: <connectionStrings> <add name="NerdDinners" connectionString="Server=localhost; Database=NerdDinners; Uid=root; Pwd=;" providerName="MySql.Data.MySqlClient"/> </connectionStrings> <system.data> <DbProviderFactories> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data> 就像教程,我期待EF4自动生成我的数据库。 相反,它会抛出一个ProviderIncompatibleException,内部exception抱怨NerdDinners数据库不存在。 很公平; 我去为它创buildMySql数据库,只是为了看看事情是否会起作用,并得到另一个ProviderIncompatibleException。 这一次,“DatabaseExists不被提供者支持”。 我承认,这是我第一次深入研究Entity Framework(我大部分都是Linq to Sql),而这些都是在上周发布的Code-First CTP上运行的。 这就是说,我在这里做错了什么,或者是一个可以解决的已知问题?

我如何在ASP.NET MVC中创build一个友好的URL?

如何在ASP.NET MVC框架中生成友好的URL? 例如,我们有一个如下所示的URL: HTTP://网站/目录/ BrowseByStyleLevel / 1 1是研究级别(在这种情况下更高)的Id浏览,但我想重新格式化的URL以同样的方式StackOverflow做到这一点。 例如,这两个url会带你到相同的地方: https://stackoverflow.com/questions/119323/nested-for-loops-in-different-languages https://stackoverflow.com/questions/119323/ 编辑:友好的部分的url被称为一个slu </s> 。

MemoryCache Empty:设置后返回null

我有一个使用新的.NET 4 System.Runtime.Caching MemoryCache的MVC 3应用程序的问题。 我注意到,在一个看似不可预测的时间之后,它停止了caching,而且是空的。 考虑一下我从ASP.NET MVC中的一个testing视图直接得到的代码: MemoryCache.Default.Set("myname","fred", new CacheItemPolicy() { SlidingExpiration = new TimeSpan(0,5,0) }); Response.Write(MemoryCache.Default["myname"]); 当它工作时,可预测的“fred”被打印出来。 但是,当问题开始发生时,尽pipeSet() , MemoryCache.Default["myname"]值为null。 我可以通过在Response.Write()行上设置一个断点来certificate这一点,并使用立即窗口直接设置和读取caching – 它只是不会设置它,并保持空! 唯一能让它再次运行的方法是导致AppDomain重复使用。 有趣的是,当应用程序正常工作时,可以通过打破Response.Write()行并运行MemoryCache.Default.Dispose()来激发问题。 之后,MemoryCache.Default本身不是空(为什么是这样?),但不会保存任何设置。 它不会导致任何错误,但不会保存任何内容。 有人可以validation这个并解释吗? 正如我相信我已经发现,当应用程序停止自己的工作, 一些是处置MemoryCache.Default ,但它不是我! UPDATE 那么,我现在已经厌倦了这个问题! CLRProfiler似乎不适用于MVC 3. SciTech的CLR工具很好 – RedGate ANTS也是如此。 但他们告诉我的是,MemoryCache对象正在被某种东西处置! 我也certificate了(通过打印时间戳)我的页面上的PartialView应该被caching(由OutputCacheAttribute指定)在几分钟后不会被caching – 它会在每次调用页面时开始刷新。 为了澄清环境,我直接运行在运行Win 7 Ultimate的开发工作站上的IIS 7.5服务器上。 上面提到的内存工具提示我只用了大约9mb的内存。 无奈之下,我已经改变了我的caching代码,首先search环境HttpContext挂钩并使用其cachingfunction,如果可用的话。 早期的testing显示这是可靠的,但感觉像一个讨厌的黑客。 我感觉到MemoryCache和OutputCache不能保证与MVC 3一起工作…

ASP.NET MVC框架4.5 CSS捆绑不起作用的托pipe

我在用MVC4编写的app海港上运行一个应用程序。 一捆的CSS文件不起作用。 在debugging模式下我的本地计算机,我看到的应用程序的代码,我看到的文件。 该应用程序按预期工作。 <link href="/Content/css/home/basic-jquery-slider.css" rel="stylesheet"/> <link href="/Content/css/home/Home.css" rel="stylesheet"/> 当我将应用程序上传到Appharbor时,我在代码中看到了该包,但该应用程序不起作用。 <link href="/Content/css/home?v=zhVOIpUNuvCOZhJyBcQWpMlozayor4te6k-pM29wHqI1" rel="stylesheet"/> 当我浏览href中的链接时,我得到403 – 禁止:访问被拒绝。 如何解决这个问题?

asp.net MVC部分视图控制器的行动

我对web应用程序开发很陌生,我想我会从最近的技术开始,所以我试图学习asp.net,就像MVC框架一样。 对于你来说,这可能是一个非常简单的问题,MVC专业人员。 我的问题是部分视图应该有一个相关联的动作,如果是的话,只要普通页面在局部视图上使用RenderPartial()就会调用这个动作。

存储/分配已authentication用户的angular色

我正在升级站点使用MVC,我正在寻找设置身份validation的最佳方式。 此时,我已经login到Active Directory:validation用户名和密码,然后设置Auth cookie。 如何在login时存储用户的angular色信息,以便我的控制器在用户浏览网站时看到这些angular色? [Authorize(Roles = "admin")] 从Active Directory获取angular色列表没有问题。 我只是不知道把它们放在哪里,以便控制器能看到它们。

无法findpath的一部分… bin \ roslyn \ csc.exe

我想运行从TFS源代码pipe理检索到的Asp.net MVC项目。 我已经添加了所有的程序集引用,并且能够在没有任何错误或警告的情况下成功编译和编译。 但是在浏览器中出现以下错误: 无法findpath'C:\ B8akWorkspace \ B8akProject \ B8akSolution \ B8AK.Portal \ bin \ roslyn \ csc.exe'的一部分。 这里是错误页面的完整截图。 经过几天的研究,我明白了Roslyn是.Net编译器平台,它提供了先进的编译function。 但是,我不明白为什么我的版本试图find\ bin \ roslyn \ csc.exe,因为我没有configuration任何与Roslyn相关的东西,也不打算在我的项目中使用Roslyn。

如何在webform中包含局部视图

我正在编程的一些网站使用ASP.NET MVC和WebForms。 我有一个局部视图,我想包括在一个networking表单。 部分视图有一些代码必须在服务器中处理,所以使用Response.WriteFile不起作用。 它应该与JavaScript禁用。 我该怎么做?

ASP.NET MVC – TempData – 好或坏的做法

我正在使用Scott Gu的Preview 5博客文章中详细介绍的AcceptVerbs方法来处理ASP.NET MVC中的表单条目: 用户通过GET获得一个空的表单 用户通过POST将填写的表单发布到相同的操作 Action会validation数据,采取适当的行动,并redirect到一个新的视图 所以我不必使用TempData 。 这就是说,我现在必须在这个过程中添加一个“确认”步骤,而且似乎需要使用TempData 。 出于某种原因,我厌恶使用TempData – 这是要devise的东西。 这是一个有效的关注,还是我补充?

ASP.NET MVC中的访问控制取决于input参数/服务层?

序言:这是一个哲学问题。 我正在寻找更多的“正确”的方式来做到这一点,而不是“一个”的方式来做到这一点。 让我们想象我有一些产品,以及在这些产品上执行CRUD的ASP.NET MVC应用程序: mysite.example/products/1 mysite.example/products/1/edit 我正在使用存储库模式,所以这些产品来自哪里并不重要: public interface IProductRepository { IEnumberable<Product> GetProducts(); …. } 此外,我的存储库还描述了一个用户列表,以及他们pipe理的产品列表(用户和产品之间的很多)。 在应用程序的其他地方,超级pipe理员正在对用户执行CRUD并pipe理用户和他们被允许pipe理的产品之间的关系。 任何人都可以查看任何产品,但只有被指定为特定产品的“pipe理员”的用户才可以调用“编辑”操作。 我应该如何去实现在ASP.NET MVC? 除非我错过了一些东西,否则我不能使用内置的ASP.NET Authorize属性作为第一我需要每个产品的不同angular色,第二我不知道要检查哪个angular色,直到我从存储库检索我的产品。 显然你可以从这个场景概括到大多数内容pipe理场景 – 例如,用户只能编辑他们自己的论坛post。 StackOverflow用户只能编辑自己的问题 – 除非他们有2000或更多的代表… 作为一个例子,最简单的解决办法就是: public class ProductsController { public ActionResult Edit(int id) { Product p = ProductRepository.GetProductById(id); User u = UserService.GetUser(); // Gets the currently logged in user if (ProductAdminService.UserIsAdminForProduct(u, […]