Tag: razor

ASP MVC 5日期格式validation问题

在我的ASP MVC 5 Web应用程序中,我需要以特定格式显示日期。 页面加载时,文本格式正确。 但是,如果您编辑该值或只是尝试发布,则会显示validation错误: 该字段的定义如下: @*Creation*@ @Html.LabelFor(model => model.Creation, new { @class = “control-label col-md-2” }) @Html.TextBoxFor(model => model.Creation, “{0:dd/MM/yyyy}”, new { @class = “form-control”}) @Html.ValidationMessageFor(m => m.Creation) viewmodel属性定义为: [DataType(DataType.Date)] [DisplayFormat(DataFormatString = “{0:dd/MM/yyyy}”, ApplyFormatInEditMode = true)] [Display(Name = “Creation”, ResourceType = typeof(Resources.Resources))] public DateTime Creation { get; set; } 屏幕截图是使用Firefox浏览器创建的。 如果我在Edge上执行相同操作,则validation会通过,但此方法对post方法的绑定无效(默认日期值)。 我该如何解决这个问题?

在MVC / Razor中,如何获取多个复选框的值并将它们全部传递给控制器​​?

我有一个视图,其中包含模型中的项目列表。 我需要为每一行添加一个复选框,让用户选中多个复选框,并将选择了哪一行的标识符传递给控制器​​。 我知道如何通过动作链接传递单个值,但我不确定如何通过动作链接传递多个值或如何“收集”选择哪些行。 我将在下面展示我的一些代码尝试。 有人可以帮我理清为什么我无法获得传递给控制器​​的所有复选框的值吗? 这是我的页面 Checkbox App ID Date Name [] 1 5/10 Bob [] 2 5/10 Ted [] 3 5/11 Alice 我需要用户做的是选择第1行和第3行(例如)并将这些应用程序ID传递给控制器​​。 我开始列出各种尝试,但决定只是展示我当前的尝试,看看是否有人可以指出我做错了什么。 我在网上和我的例子之间看到的主要区别是我使用PagedList并在foreach循环中创建表的行。 当命中控制器时,参数int为空白。 如何从复选框中获取值? 我使用这个站点的基本思想是命名所有复选框,并通过动作链接传递ICollection: http : //haacked.com/archive/2008/10/23/model-binding-to-a-list。 ASPX / 视图: @model PagedList.IPagedList Merchant Application Report @foreach (var item in Model) { @Html.ActionLink(item.ApplicationID.ToString(), “ViewApplication”, new { ID = item.ApplicationID, edit = […]

Javascript:如何遍历模型中的对象列表

所以我需要在视图模型中的学生对象列表中获取学生的名字,然后通过$ .post将它们发送到服务器,后者我已经弄明白但我无法弄清楚如何遍历对象列表。 基本上我有这个: //Student object public class Student { public string FirstName { get; set; } public string LastName { get; set; } //Like a bunch of other attributes here } 这是视图中的模型: //StudentSearchResult ViewModel public class StudentSearchResult { public IEnumerable { get; set;} } 起初我只是按原样发送学生列表对象,但它可能不是一个好主意,因为它捆绑了太多属性(当我尝试发送模型时它给了我’循环’错误)而且我只真的需要使用我已有的$ .post方法将连接的FirstName和LastName发送到控制器。 我尝试过这样的事情: var names = [] var length = “@Model.StudentSearchResult.count()”; […]

如何在ASP.NET MVC中更轻松地访问我的自定义IPrincipal?

我编写了一个自定义主体对象,其中包含一些额外的字段(除了用户名之外的电子邮件和用户ID)。 为了访问这些属性,我必须将Context.User对象转换为我的自定义主体。 @Html.GetGravitarImage((User as CustomPrincipal).Email) 通过我的global.ascx中的Application_AuthenticateRequest创建/反序列化此自定义主体。 您可以在此处查看此问题以获取更多信息。 private void Application_AuthenticateRequest(Object source, EventArgs e) { var application = (HttpApplication)source; var context = application.Context; // Get the authentication cookie string cookieName = FormsAuthentication.FormsCookieName; HttpCookie authCookie = context.Request.Cookies[cookieName]; if (authCookie == null) return; var authTicket = FormsAuthentication.Decrypt(authCookie.Value); context.User = CustomPrincipal.CreatePrincipalFromCookieData(authTicket.UserData); } 但是,如果用户未经过身份validation,那么我对CustomPrincipal的强制转换将失败(因为它不会在上面的方法中注入),并且(User as CustomPrincipal)的结果将返回null,从而给我一个空引用上面我的方法尝试获取电子邮件时的exception。 什么是这个问题的干净解决方案? 我想让访问我的自定义主体变得容易,并且必须执行以下操作似乎很麻烦: @Html.GetGravitarIcon((User is […]

MVC 3 Razor – 如何阻止视图引擎搜索aspx和ascx页面?

我在视图中有一个小错误,并注意到视图引擎不仅搜索我的剃刀视图,还搜索aspx / ascx页面。 (我的错误已修复) 有没有办法告诉它只搜索Razor视图引擎? 这是显示的错误消息: The view ‘Index’ or its master was not found or no view engine supports the searched locations. The following locations were searched: ~/Areas/BO/Views/Organization/Index.aspx ~/Areas/BO/Views/Organization/Index.ascx ~/Areas/BO/Views/Shared/Index.aspx ~/Areas/BO/Views/Shared/Index.ascx ~/Views/Organization/Index.aspx ~/Views/Organization/Index.ascx ~/Views/Shared/Index.aspx ~/Views/Shared/Index.ascx ~/Areas/BO/Views/Organization/Index.cshtml ~/Areas/BO/Views/Organization/Index.vbhtml ~/Areas/BO/Views/Shared/Index.cshtml ~/Areas/BO/Views/Shared/Index.vbhtml ~/Views/Organization/Index.cshtml ~/Views/Organization/Index.vbhtml ~/Views/Shared/Index.cshtml ~/Views/Shared/Index.vbhtml

.Replace(Environment.NewLine,“”)适用于localhost但不是我上传网站到主机时

我不知道为什么会这样。 这是我的代码,当我在localhost上尝试它时,它工作得很好但是当我上传我的网站时,我的文字没有 。 为什么会这样? 我怎样才能用新线修复这个问题? ( white-space: pre-line;对我来说不是解决方案,它不能在IE6上工作,而且它正在弄乱我的样式) @Html.Raw(Html.Encode(Model.Body) .Replace(Environment.NewLine, “”))

从控制器发送图像到MVC3中查看

我使用的是asp.net mvc3。 我正在使用system.drawing的文本制作一个位图。 我想要 将该图像从我的控制器发送到VIEWDATA中的视图,但在我看来,我无法正确解析VIEWDATA。 这是控制器代码: public ActionResult About( string agha) { agha = “asgdjhagsdjgajdga”; Color BackColor = Color.White; String FontName = “Times New Roman”; int FontSize = 25; int Height = 50; int Width = 700; Bitmap bitmap = new Bitmap(Width, Height); Graphics graphics = Graphics.FromImage(bitmap); Color color = Color.Gray; ; Font font = […]

SelectedValues在MultiSelectList mvc中不起作用

我有一个类似的课程 public class Category { public int ID { get; set; } public string Name { get; set; } public ICollection CategorySelected { get; set; } public static List GetOptions() { var categories = new List(); categories.Add(new Category() { ID = 1, Name = “Bikes” }); categories.Add(new Category() { ID = 2, Name = “Cars” […]

ASP.Net MVC 3 Razor Response.Write位置

我正在尝试将有关实施Facebook BigPipe的教程更新为razor。 有一个html助手扩展,它将一个pagelet添加到列表中,然后向响应输出一个保持div。 这个想法是稍后将这个pagelet的内容呈现为一个字符串,然后通过javascript注入到这个hold div中。 public static void RegisterPagelet(this HtmlHelper helper, Pagelet pagelet) { var context = helper.ViewContext.HttpContext; List pagelets = (List)context.Items[“Pagelets”]; if (pagelets == null) { pagelets = new List(); context.Items[“Pagelets”] = pagelets; } pagelets.Add(pagelet); context.Response.Write(“”); } 在示例中,此函数的调用方式如下: 这会将小页面添加到列表中,并将保留div输出到响应流。 所以 但是,当我在Razor中尝试相同时: @{ Html.RegisterPagelet(myPagelet); } div占位符显示在bodyHolder div之外的正文顶部。 为什么是这样? 我怎样才能使这个行为像在div中输出响应的webforms视图? 谢谢。

MVC Html Extension返回字符串而不是html标记?

如果我有这样的扩展名: public static string ImageLink(this HtmlHelper htmlHelper, string imgSrc, string alt, string actionName, string controllerName, object routeValues, object htmlAttributes, object imgHtmlAttributes) { return @” “; } 我在这样的局部视图中使用它: @Html.ImageLink(“../../Content/images/english.png”,”English”, “ChangeCulture”, “Account”, new { lang = “en”, returnUrl = this.Request.RawUrl }, null,null) 我有这样的输出: 知道为什么吗?