Questions tagged «asp.net-mvc-3»

ASP.NET MVC 3是Model-View-Controller扩展的第三个主要版本,用于在.NET框架中开发Web应用程序。

4
如何使用 ?:带有Razor和内联代码块的if语句
我正在使用新的Razore视图引擎更新旧的.aspx视图。我在很多地方都有这样的代码: <span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span> 理想情况下,我想这样做: <span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span> 但是,这里有两个问题: vote-up@{puzzle.UserVote ....不会将@符号视为代码块的开头 @puzzle.UserVote == VoteType.Up看起来@puzzle.UserVote就像应该渲染变量的值一样。 有人知道如何解决这些问题吗?

7
MVC 3:如何通过Ajax加载没有其布局页面的视图?
我正在学习渐进增强功能,并且对AJAXifying视图有疑问。在我的MVC 3项目中,我有一个布局页面,一个viewstart页面和两个纯视图。 viewstart页面位于Views文件夹的根目录中,因此适用于所有视图。它指定所有视图均_Layout.cshtml应用于其布局页面。布局页面包含两个导航链接,每个视图一个。链接用于@Html.ActionLink()将自身呈现到页面。 现在,我添加了jQuery,并希望劫持这些链接,并使用Ajax在页面上动态加载其内容。 <script type="text/javascript"> $(function () { $('#theLink').click(function () { $.ajax({ url: $(this).attr('href'), type: "GET", success: function (response) { $('#mainContent').html(response); } }); return false; }); }); </script> 我可以想到两种方法来执行此操作,但是我并不特别喜欢其中一种: 1)我可以获取整个View的内容并将它们放在局部视图中,然后在渲染时让主视图调用局部视图。这样Request.IsAjaxRequest(),我就可以在控制器中使用,根据请求是否为Ajax请求来返回View()或返回PartialView()。我无法将常规视图返回到Ajax请求,因为那样它将使用布局页面,并且我将获得注入的布局页面的第二个副本。但是,我不喜欢这样,因为它迫使我创建一个空视图,其中只包含一个@{Html.RenderPartial();}用于标准GET请求的视图。 public ActionResult Index() { if (Request.IsAjaxRequest()) return PartialView("partialView"); else return View(); } 然后在Index.cshtml中执行以下操作: @{Html.RenderPartial("partialView");} 2)我可以从_viewstart中删除布局名称,并在请求不是Ajax时手动指定它: public ActionResult Index() { …


30
找不到类型或名称空间名称'DbContext'[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 我是ASP.NET MVC(3)的新手,并且很难解决Visual Studio中的生成错误: 找不到类型或名称空间名称“ DbContext”(您是否缺少using指令或程序集引用?) using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; using System.Data.Entity; namespace MyProjectName.Models { public class MachineModel { // name [Required] [Display(Name = "Nom de la machine")] public string Name { get; set; } // IP [Required] [RegularExpression(@"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", ErrorMessage = …

5
如何在Razor页面上添加额外的命名空间而不是@using声明?
我需要使用某种魔术来获取pages/namespaceswebconfig元素中的名称空间吗? <pages> <namespaces> <add namespace="System.Web.Mvc"/> <add namespace="System.Web.Mvc.Ajax"/> <add namespace="System.Web.Mvc.Html"/> <add namespace="System.Web.Routing"/> <add namespace="System.Web.WebPages"/> <add namespace="System.Web.Helpers"/> <add namespace="MyCustomHelpers"/> </namespaces> </pages> 以上只是不想要的工作。我知道名称空间很好,因为当我将放在@using MyCustomHelpers页面顶部时,它可以神奇地工作。 这样一来,我Html.SomeFunction()无需将@using所有页面放在顶部就可以开始工作


6
asp.net MVC3上的自定义错误页
我正在开发一个MVC3基本网站,并且正在寻找一种解决方案,用于处理错误并为每种错误呈现自定义视图。因此,假设我有一个“错误”控制器,其主要动作是“索引”(通用错误页面),并且该控制器将针对用户可能会出现的错误(例如“ Handle500”或“ HandleActionNotFound”)执行更多操作。 因此,此“错误”控制器可以处理网站上可能发生的每个错误(例如:找不到“控制器”或“操作”,500、404,dbException等)。 我正在使用Sitemap文件定义网站路径(而不是路线)。 该问题已经回答,这是对Gweebz的回复 我最后的applicaiton_error方法如下: protected void Application_Error() { //while my project is running in debug mode if (HttpContext.Current.IsDebuggingEnabled && WebConfigurationManager.AppSettings["EnableCustomErrorPage"].Equals("false")) { Log.Logger.Error("unhandled exception: ", Server.GetLastError()); } else { try { var exception = Server.GetLastError(); Log.Logger.Error("unhandled exception: ", exception); Response.Clear(); Server.ClearError(); var routeData = new RouteData(); routeData.Values["controller"] = …


5
RestSharp JSON参数发布
我试图对我的MVC 3 API进行非常基本的REST调用,而我传入的参数未绑定到action方法。 客户 var request = new RestRequest(Method.POST); request.Resource = "Api/Score"; request.RequestFormat = DataFormat.Json; request.AddBody(request.JsonSerializer.Serialize(new { A = "foo", B = "bar" })); RestResponse response = client.Execute(request); Console.WriteLine(response.Content); 服务器 public class ScoreInputModel { public string A { get; set; } public string B { get; set; } } // …

6
如何优雅地处理时区
我的网站所在的时区与使用该应用程序的用户所在的时区不同。除此之外,用户可以具有特定的时区。我想知道其他SO用户和应用程序如何实现这一目标?最明显的部分是在数据库内部,日期/时间存储在UTC中。在服务器上时,所有日期/时间都应以UTC处理。但是,我看到了我要克服的三个问题: 以UTC格式获取当前时间(通过轻松解决DateTime.UtcNow)。 从数据库中提取日期/时间并将其显示给用户。有潜在的很多人要求在不同的视图上打印日期。我在考虑视图和控制器之间的某些层可以解决此问题。或启用自定义扩展方法DateTime(请参见下文)。主要缺点是,在视图中使用日期时间的每个位置,都必须调用extension方法! 这也会增加使用类似 JsonResult。您不能再轻易打电话了Json(myEnumerable),那一定是Json(myEnumerable.Select(transformAllDates))。也许AutoMapper可以在这种情况下提供帮助? 从用户处获取输入(本地到UTC)。例如,发布带有日期的表单将需要将日期转换为UTC之前的日期。首先想到的是创建一个自定义ModelBinder。 这是我认为在视图中使用的扩展: public static class DateTimeExtensions { public static DateTime UtcToLocal(this DateTime source, TimeZoneInfo localTimeZone) { return TimeZoneInfo.ConvertTimeFromUtc(source, localTimeZone); } public static DateTime LocalToUtc(this DateTime source, TimeZoneInfo localTimeZone) { source = DateTime.SpecifyKind(source, DateTimeKind.Unspecified); return TimeZoneInfo.ConvertTimeToUtc(source, localTimeZone); } } 考虑到很多应用程序现在都是基于云的,因此我认为考虑到时区是一件很平常的事,因为服务器的本地时间可能与预期的时区有很大差异。 之前是否已经解决过这个问题?有什么我想念的吗?想法和想法深表赞赏。 编辑:为了消除一些混乱,我想添加一些更多的细节。现在的问题不是如何在数据库中存储UTC时间,而是更多关于从UTC-> Local和Local-> UTC开始的过程。正如@Max Zerbini指出的那样,将UTC-> Local代码放在视图中显然是明智的,但是使用的是DateTimeExtensions真正的答案吗?从用户那里获取输入信息时,接受日期作为用户的本地时间(因为这就是JS会使用的时间),然后使用a …

3
如何设置web.config文件以显示完整的错误消息
我在Windows Azure上部署了MVC-3应用程序。但是现在当我通过staging url它请求它时(对不起,在处理您的请求时发生了错误。)。现在,我想查看完整的错误消息,由于某些安全原因,默认情况下它是隐藏的。我知道我们可以通过web.config文件来做到这一点。但是如何?

8
从动作过滤器属性重定向
在中进行重定向的最佳方法是什么ActionFilterAttribute?我有一个ActionFilterAttribute电话,IsAuthenticatedAttributeFilter并检查了会话变量的值。如果变量为false,则我希望应用程序重定向到登录页面。我更愿意使用路由名称进行重定向,SystemLogin但是此时任何重定向方法都可以。

16
在某些情况下禁用“必需的验证”属性
我想知道是否可以在某些控制器操作中禁用“必需的验证”属性。我想知道这是因为在我的一种编辑表单上,我不需要用户为他们先前已经指定的字段输入值。但是,我然后实现了一种逻辑,即当他们输入值时,它会使用一些特殊的逻辑来更新模型,例如对值进行哈希处理等。 关于如何解决此问题有任何建议吗? 编辑: 是的,客户端验证在这里是一个问题,因为它将不允许他们在不输入值的情况下提交表单。

5
ASP.NET:在应用程序的启动前初始化阶段不能调用此方法
我正在尝试在IIS 6.0上运行ASP.NET MVC 3站点。 当前,当我从服务器请求页面时,出现以下错误: 解析器错误消息:在应用程序的启动前初始化阶段不能调用此方法。 在这条线上: <add name="MyMembershipProvider" type="NS.MyMembershipProvider" connectionStringName="MyDatabase" applicationName="/MySite"/> 我完全感到困惑,对ASP.NET应用程序生命周期了解不多,更不用说6.0和7.0之间的区别了。阅读有关它的MSDN页面似乎并没有太大帮助。 有没有人有任何见解或任何好的调查链接?:)

4
通用方法多重(OR)类型约束
读完这篇文章后,我了解到可以通过使方法成为通用方法来允许方法接受多种类型的参数。在示例中,以下代码与类型约束一起使用,以确保“ U”为IEnumerable<T>。 public T DoSomething<U, T>(U arg) where U : IEnumerable<T> { return arg.First(); } 我发现了更多允许添加多个类型约束的代码,例如: public void test<T>(string a, T arg) where T: ParentClass, ChildClass { //do something } 但是,此代码似乎强制执行,arg必须同时是ParentClass 和 类型ChildClass。我想做的是说arg可以是ParentClass 或 ChildClass的以下类型: public void test<T>(string a, T arg) where T: string OR Exception { //do something } …
135 c#  asp.net-mvc-3  types 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.