Tag: asp.net mvc

如何根据生日计算年龄?

可能重复: 如何计算C#中某人的年龄? 我想编写一个ASP.NET辅助方法,它返回给定生日的人的年龄。 我试过这样的代码: public static string Age(this HtmlHelper helper, DateTime birthday) { return (DateTime.Now – birthday); //?? } 但它不起作用。 根据生日计算人的年龄的正确方法是什么?

如何使用Html.GetUnobtrusiveValidationAttributes()

我试图解决这样一个事实:当他们编写asp.net MVC 3时,他们忘记包含代码来添加不显眼的validation属性到选择列表,他们的“修复”就是将它包含在MVC 4中,这不是血腥的使用MVC 3的任何人。 我提议的工作是使用Html.GetUnobtrusiveValidationAttributes()来自己添加它们,就像任何其他自定义属性一样,但我无法确定调用该方法的正确语法。 有2个重载,一个接受一个字符串,另一个接受一个字符串和一个ModelMetaData类。 我理解元数据参数,我认为我只是传入ViewData.ModelMetadata但该字符串应该是什么? MSDN文档说它是“指定的HTML名称属性”,这对我来说毫无意义。 HTML名称属性是什么? 选择清单? 为什么它需要它,以及它如何帮助它知道我的模型上我想要validation的属性? 查看使用示例,他们似乎都在我的模型上的属性名称中传递,我想要validation属性,这是有道理的。 不幸的是,无论我传递什么,我都无法让方法返回任何空集合。 我的模型类叫做Event,我的属性叫做EventTypeID。 我使用稍微不同的viewmodel类作为视图的基础,因为我需要显示事件列表,并且还允许在同一视图上输入新事件,所以我有一个简单的viewmodel类,如下所示: public class EventViewModel { public Model.Event NewEvent { get; set; } public IEnumerable Events { get; set; } } 下拉列表映射到属性,如: @Html.DropDownListFor(model => model.NewEvent.EventTypeID ,我将什么作为字符串传递给Html.GetUnobtrusiveValidationAttributes(string)或Html.GetUnobtrusiveValidationAttributes(string, ModelMetadata)来获取属性对于这个属性。我试过: Html.GetUnobtrusiveValidationAttributes(“EventTypeID”) Html.GetUnobtrusiveValidationAttributes(“EventTypeID”,ViewData.ModelMetadata) Html.GetUnobtrusiveValidationAttributes(“NewEvent.EventTypeID”) Html.GetUnobtrusiveValidationAttributes(“NewEvent.EventTypeID”,ModelMetadata) 他们都返回一个空集合。 我知道我的模型是正确的,因为如果我将调用从Html.DropDownListFor更改为Html.TextBoxFor然后validation“正常工作”,除了将validation属性添加到我的模型类之外我不必做任何事情。 编辑: 只是尝试关闭客户端validation,validation在所有选择列表的服务器端工作正常。

ASP.NET MVC中的HttpClient Singleton实现

在www.asp.net上阅读此博客文章和官方说明后 : HttpClient旨在实例化一次,并在应用程序的整个生命周期中重复使用。 特别是在服务器应用程序中,为每个请求创建一个新的HttpClient实例将耗尽重负载下可用的套接字数量。 这将导致SocketException错误。 我发现我们的代码在每次调用时都处理了HttpClient。 我正在更新我们的代码,以便我们重用HttClient,但我关心的是我们的工具但不是线程安全的。 以下是新代码的当前草案: 对于unit testing,我们为HttpClient实现了一个包装器,消费者调用包装器: public class HttpClientWrapper : IHttpClient { private readonly HttpClient _client; public Uri BaseAddress { get { return _client.BaseAddress; } set { _client.BaseAddress = value; } } public HttpRequestHeaders DefaultRequestHeaders { get { return _client.DefaultRequestHeaders; } } public HttpClientWrapper() { _client = new HttpClient(); } public […]

是否可以覆盖模型中属性的必需属性?

我很想知道是否可以覆盖模型上设置的[Required]属性。 我相信这个问题最简单的解决方案,任何接受者?

MVC 3区域路由不起作用

我在我的MVC 3应用程序中创建了一个名为“Blog”的区域。 在global.asax中,我有以下代码。 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute( “Default”, // Route name “{controller}/{action}/{id}”, // URL with parameters new { controller = “Home”, action = “Index”, id = UrlParameter.Optional } // Parameter defaults ); } protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); } 这是我所在地区的代码 public class BlogAreaRegistration : AreaRegistration { public override string […]

如何使用Ajax.BeginForm更新div并执行javascript函数?

我通过使用类似的东西更新部分视图的div: 并且它的工作正常,返回的视图被添加到div,但是我现在需要在post成功时执行javascript,所以我想:“简单,只需将OnSuccess = “MyJsFunc()”添加到AjaxOptions ,但是这样做后,它停止了工作! 现在页面被刷新,只返回部分视图:(,我甚至试过一个简单的Alert(“Hi”) ,它也没有工作..我怎么能让这个工作? (顺便说一下,我认为这可能是一个重复的https://stackoverflow.com/questions/1994754/execute-javascript-after-loading-a-mvc-page-using-ajax-beginrouteform但这个问题被废弃了回答)

是否可以覆盖ASP.NET MVC中的默认行为?

我想知道是否/如何覆盖ASP.NET MVC中的默认[Authorize]行为。 我知道我可以创建一个新的Action Filter,创建自己的属性等等; 我只是感兴趣,如果我可以简单地更改[授权]行为并用我自己的代码替换它的工作? 编辑 :男孩和女孩。 感谢您的意见,但正如我所写,我不打算引入新的[XYZAuthorize]属性。 我知道怎么做。 我想保留[授权]符号,但只是改变它的工作原理。

ASP.NET MVC或者渲染EditorFor基于用户角色

我有一个包含当前用户属性的基本viewmodel类,我需要MVC根据用户的管理状态呈现文本框或标签。 目前,我正在这样做,但代码必须重复很多。 @if (Model.CurrentUser.Admin) { @Html.EditorFor(m => m.Order.CustomerDiscount); } else { @Html.DisplayFor(m => m.Order.CustomerDiscount); } 是否可以创建自定义编辑器扩展? @Html.PrivilegedEditorFor(m=>m.Order.CustomerDiscount); 编辑: 感谢@Fals。 这里略有不同的解决方案: using System.Web.Mvc.Html; public static class HtmlHelperExtensions { public static MvcHtmlString PrivilegedEditorFor(this HtmlHelper htmlHelper, Expression<Func> expression, bool isAdmin) { if (isAdmin) { return htmlHelper.EditorFor(expression); } else { return htmlHelper.DisplayFor(expression); } } }

HTML编码解码c#MVC4

我正在将ac#MVC2项目升级到c#MVC4。 这是MVC2中的场景 输入字符串(来自数据库) Model.text=”Hihello!you there” 使用渲染的输出(在视图中渲染) Hi hello! you there 这是MVC4中的场景 输入字符串(来自数据库) Model.text=”Hihello!you there” 使用渲染的输出(在视图中渲染) @Model.text Hihello!you there 我试过了 @HttpUtility.HtmlDecode(Model.text) @HttpUtility.HtmlEncode(Model.text) 什么都没有帮助…… 我在这里问过MVC4有类似的问题(ajax结果用html标签呈现而不是实际的html) 我的一些设置是否让我烦恼? 或者是与HTML 5有关或我在使用MVC4时遗漏了什么。 请帮忙!!

ASP.NET MVC +填充下拉列表

在我的viewModel中我有: public class PersonViewModel { public Person Person { get; set; } public int SelectRegionId { get; set; } public IEnumerable Regions { get; set; } } 但是我在Controller / View中需要做些什么来显示值? 我现在拥有的: 控制器: public ActionResult Create() { var model = new ReUzze.Models.PersonViewModel { Person = new Person(), Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), “Id”, “Name”) }; return View(model); […]