Tag: asp.net mvc

AllowAnonymous不能使用Custom AuthorizationAttribute

这让我难住了一段时间。 没有遇到类似的情况似乎在这里显然适用。 我可能错过了一些明显的东西,但是我看不见它。 在我的Mvc Web应用程序中,我使用Authorize和AllowAnonymous属性,以便您必须明确地公开可用的操作,而不是locking网站的安全区域。 我更喜欢这种方法。 但是我无法在WebAPI中获得相同的行为。 我写了一个自定义的授权属性从System.Web.Http.AuthorizeAttributeinheritance与以下: [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)] public class MyAuthorizationAttribute : System.Web.Http.AuthorizeAttribute 我把这个注册为一个filter: public static void RegisterHttpFilters(HttpFilterCollection filters) { filters.Add(new MyAuthorizationAttribute()); } 这一切都按预期工作,没有凭据,操作不再可用。 问题是,现在下面的方法将不允许AllowAnonymous属性做它的事情: [System.Web.Http.AllowAnonymous] public class HomeController : ApiController { [GET("/"), System.Web.Http.HttpGet] public Link[] Index() { return new Link[] { new SelfLink(Request.RequestUri.AbsoluteUri, "api-root"), new […]

ASP.Net MVC:从视图调用方法

在我的MVC应用程序中,控制器从外部API获取数据(模型)(因此没有使用模型类)并将其传递给视图。 数据(模型)有一个容器,其中有几个对象有几个字段(string值)。 一个视图迭代每个对象并调用另一个视图来绘制它们中的每一个。 这个视图遍历字段(string值)并绘制它们。 这是对我来说很棘手的地方。 有时我想在字段(string值)上做一些特殊的格式化。 我可以为格式编写20行代码,但是对于每一个领域我都要这样做,那只会是愚蠢的,哦,太难看了。 相反,我想采取字段(string值),传递给一个方法,并获得另一个string值。 然后为每个领域做到这一点。 所以,这是我的问题: 如何从视图调用方法? 我意识到我可能会在这里问错误的问题。 答案可能是我不这样做,我应该使用本地模型,并将从外部API获取的对象反序列化到本地模型,然后在本地模型中,在我通过之前执行“特殊格式化”它来看待。 但我希望有一些方法可以从视图中调用方法。 主要是因为它将我从API获得的自定义对象转换为我构build的本地自定义对象似乎有很多开销。 而且,我不确定这样做的最佳方式是什么。 免责声明:我知道类似的线程“ASP.NET MVC:从视图调用控制器方法”( ASP.NET MVC:从视图调用控制器方法 ),但我不明白这是如何回答我的问题。

在asp.net mvc中映射物理文件path

我想在我的ASP.Net MVC控制器从磁盘读取XSLT文件。 我正在做的是以下几点: string filepath = HttpContext.Request.PhysicalApplicationPath; filepath += "/Content/Xsl/pubmed.xslt"; string xsl = System.IO.File.ReadAllText(filepath); 然而, 在forums.asp.net上的这个线程的一半是下面的引用 HttpContext.Current是邪恶的,如果你在你的mvc应用程序的任何地方使用它,你做错了什么,因为你不需要它。 虽然我不使用Current ,但我想知道在MVC中确定文件的绝对物理path的最佳方法是什么? 出于某种原因(我不知道为什么!) HttpContext不适合我。 有没有更好的(或build议/最佳做法)在ASP.Net MVC磁盘读取文件的方式?

MVC中UIHint属性的用法是什么

任何人都可以请解释我什么是在MVC中使用UIHint属性。 我们为什么需要这个。 何时以及如何使用。 谢谢

如何使用moq模拟Controller.User

我有几个ActionMethods查询Controller.User的angular色是这样的 bool isAdmin = User.IsInRole("admin"); 在这种情况下方便地行事。 我开始用这样的代码对这些方法进行testing [TestMethod] public void HomeController_Index_Should_Return_Non_Null_ViewPage() { HomeController controller = new HomePostController(); ActionResult index = controller.Index(); Assert.IsNotNull(index); } 并且该testing失败,因为Controller.User未设置。 任何想法?

由X-Frame-Options拒绝载入:http://www.youtube.com/v/g5RM5StrMXY不允许跨越原始帧

我在ASP.NET中有一个网站。 页面加载后,我得到以下错误。 错误:由X-Frame-Options拒绝加载: http : //www.youtube.com/v/lgZBsWGaQY0&feature不允许交叉框架。 由于这个错误,YouTubevideo无法在iframe中打开。 <div style="display: none; position: relative;"> <div id="divYouTubeClasses"> <iframe id="Iframe1" style="background-color: White !important; border: 0;" width="835" height="430" src="http://www.youtube.com/v/g5RM5StrMXY" scrolling="no"></iframe> </div> </div> 请为此错误提供一些解决scheme。

如何获取HttpRequestMessage数据

我有一个MVC API控制器与以下操作。 我不明白如何读取消息的实际数据/正文? [HttpPost] public void Confirmation(HttpRequestMessage request) { var content = request.Content; }

错误消息:(提供程序:共享内存提供程序,错误:0 – 没有进程在pipe道的另一端。

我想在Windows Server 2003上部署我的网站。我是否错过了什么是错误消息,如何纠正? 谢谢 我有错误消息: 与服务器build立了连接,但在login过程中发生错误。 (提供程序:Shared Memory Provider,错误:0 – pipe道的另一端没有进程。)说明:在执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪,了解有关错误的更多信息以及源代码的位置。 exception详细信息:System.Data.SqlClient.SqlException:与服务器build立了连接,但在login过程中发生错误。 (提供程序:共享内存提供程序,错误:0 – 没有进程在pipe道的另一端。 源错误: 在执行当前Web请求期间生成未处理的exception。 有关exception的来源和位置的信息可以使用下面的exception堆栈跟踪来标识。 堆栈跟踪: [SqlException(0x80131904):与服务器build立了连接,但在login过程中发生错误。 (提供程序:共享内存提供程序,错误:0 – 没有进程在pipe道的另一端。)] System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection拥有对象)+1019 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection拥有连接)+108 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)+126 System.Data.SqlClient.SqlConnection.Open()+125 NHibernate.Connection.DriverConnectionProvider.GetConnection()+104 NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare()+15 NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords(方言方言,IConnectionHelper connectionHelper)+89 NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory sessionFactory)+80 NHibernate.Impl.SessionFactoryImpl..ctor(configurationcfg,IMapping映射,设置设置,EventListeners监听器)+599 NHibernate.Cfg.Configuration.BuildSessionFactory()+104 C:\ Dev \ Code \ API \ Data \ SessionManager.cs中的MyProject.API.Data.SessionManager..cctor()

是否有任何有关ASP.NET MVC控制器操作设置的AJAX属性?

我想在ASP.NET MVC中使用AJAX调用的部分视图,这是我第一次使用它。 我刚刚search了一下,是否有什么特别的东西我应该事先知道,而我很好奇的其中一个,是看有没有什么特别的属性需要设置或者与AJAX调用有关? 像[ChildActionOnly]或[HttpGet]

entity frameworkcaching问题

我是entity framework的新手。 我已经在我的数据库中使用EF得到了一些值。 它完美地返回,值显示在标签中。 但是,当我删除我的表中的所有值(不使用EF),EF查询返回我的旧值。 我知道EF将这些值存储在caching中,并返回caching的数据以供后续运行。 它是否正确? 那么我怎样才能解决问题,当我已经删除了我的数据库中的所有值,但EF返回旧值? 编辑 : 现在我使用datamodel.SaveChanges() 。 但现在它返回相同的旧值。 我的示例查询如下所示: SchoolBriefcaseEntities datamodel = new SchoolBriefcaseEntities(); datamodel.SaveChanges(); List<Compliance> compliance=new List<Compliance>(); IList<ComplianceModel> complianceModel; if (HttpContext.Current.User.IsInRole("SuperAdmin")) { compliance = datamodel.Compliances.Where(c => c.School.DistrictId == districtId).ToList(); }