Tag: asp.net mvc

ASP MVC在部分视图中定义部分

正如标题所述,我想在局部视图中定义一个部分。 我测试过的代码如下: 控制器: public ActionResult Test() { return View(); } public ActionResult PartialTest() { return PartialView(“_PartialTest”); } Test.cshtml: @{ ViewBag.Title = “Test”; } Test @Html.Action(“PartialTest”) _PartialTest.cshtml: partial Test @section scripts { $(document).ready(function() { alert(“Test”); }); } 将部分scripts放在Test.cshtml中可以正常工作,因此问题不在布局中。 有人知道怎么做吗?

MVC DropDownList不从模型中选择值

我已经阅读了这个问题ASP.NET MVC DropDownList没有从模型和答案中选择值,但我不知道我的问题的解决方案。 这是我的看法: @foreach (var adjusterLanguages in Model.adjusterLanguages) { @Html.DropDownListFor(model => Model.adjusterLanguages[i].languageID, (SelectList)ViewBag.ForeignLanguages) @Html.ValidationMessageFor(model =>Model.adjusterLanguages[i].languageID) i++; } 我可以确认正在填充模型数据(来自我的控制器): model.adjusterLanguages = adjLangs; 那么,如何在模型发送到视图时选择项目? 生成的html如下: –Select– Afrikanns Albanian Arabic –Select– Afrikanns Albanian Arabic

添加控制器错误无法检索元数据

我想在VS2012中的MVC 4应用程序中添加控制器作为此图像: 模型: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; namespace MvcDemo.Models { public class MovieDB { public int ID { get; set; } public string Title { get; set; } public string Director { get; set; } public DateTime Date { get; set; } } public class MovieDBContext : DbContext { […]

将序列化表格数据和附加数据发布到MVC控制器?

我正在尝试将一些POST请求发送到我的服务器的其他数据。 最初,我只发送了几种forms的信息: $.ajax({ url: ‘SaveAllDetails’, type: ‘POST’, data: $(‘form’).serialize(), dataType: ‘json’ }); 和MVC控制器方法: [HttpPost] public ActionResult SaveAllDetails([Bind(Prefix = “order”)]ExistingOrderDetailsModel existingOrderDetailsModel, [Bind(Prefix = “task”)]ExistingTaskDetailsModel existingTaskDetailsModel, [Bind(Prefix = “device”)]DeviceDetailsModel deviceDetailsModel) { …. } 这很好用。 MVC的模型绑定器能够正确地反序列化URL编码的字符串。 现在,要求已经改变。 我需要发送一个额外的数据数组以及我的三个表单。 此数据数组不保存在表单中,也没有绑定前缀。 我需要在同一个Controller方法中完成所有操作,因为所有validation都需要在单个事务中执行。 所以,我现在有: var subcomponentsGridRows = JSON.stringify(subcomponentsDetailsView.getAllGridData()); var existingOrderDetailsFormData = $(‘form#existingOrderDetailsForm’).serialize(); var existingTaskDetailsFormData = $(‘form#existingTaskDetailsForm’).serialize(); var deviceDetailsFormData = $(‘form#existingDeviceDetailsForm’).serialize() $.ajax({ […]

EditorFor IEnumerable with TemplateName

假设我有一个简单的模型来解释目的: public class Category { … public IEnumerable Products { get; set; } } 视图: @model Category … @Html.EditorFor(m => m.Products) EditorTemplate: @model Product … @Html.EditorFor(m => m.Name) 请注意,我不必为IEnumerable定义EditorTemplate,我只能为Product模型创建它,而MVC框架足够智能,可以使用自己的IEnumerable模板。 它遍历我的集合并调用我的EditorTemplate。 输出html将是这样的 … 毕竟,我可以发布到我的控制器。 但是,当我使用模板名称定义EditorTemplate时,为什么MVC没有做到这一点? @Html.EditorFor(m => m.Products, “ProductTemplate”) 在这种情况下,我必须将属性的类型更改为IList ,自己遍历集合并调用EditorTemplate @for (int i = 0; i m.Products[i], “ProductTemplate”) } 这似乎是一种肮脏的解决方法给我。 这样做是否还有其他更清洁的解决方案?

为什么我不能将资源用作具有DataAnnotations的ErrorMessage?

我为什么不能这样做? [Required(ErrorMessage = “*”)] [RegularExpression(“^[a-zA-Z0-9_]*$”, ErrorMessage = Resources.RegistrationModel.UsernameError)] public string Username { get; set; } 告诉我的错误信息是什么? 属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式。

使用数据注释将十进制值validation为2位小数?

我在我的视图模型中有这个: [Required(ErrorMessage = “Price is required”)] [Range(0.01, 999999999, ErrorMessage = “Price must be greater than 0.00”)] [DisplayName(“Price ($)”)] public decimal Price { get; set; } 我想validation用户输入的小数位数不超过2位。 所以我想拥有 有效值 :12,12.3,12.34 无效值 :12.,12.345 有没有办法用数据注释validation这一点?

如何确定任意URL是否与定义的路由匹配

如何判断字符串是否与特定的命名路由匹配? 我有这样的路线: routes.MapRoute( “FindYourNewRental”, “find-your-new-rental/{market}/{community}.html”, new { controller = “FindYourNewRental”, action = “Community” } ); string url = “http://www.website.com/find-your-new-rental/northerncalifornia/sacramento.html” 如何以编程方式判断’url’字符串是否与该路由匹配? 像这样的东西: // matches url with the named route “FindYourNewRental” if (IsRouteMatch(url, “FindYourNewRental”)) { // do something } public bool IsRouteMatch(string url, string routeName) { // How do I code this function }

ASP.NET MVC公共替代UrlHelper.GenerateUrl

我想在我的页面中嵌入一个控制器动作的链接,以便我可以从javascript使用它。 就像是 var pollAction = ‘/Mycontroller/CheckStatus’ 现在我很乐意对它进行硬编码,但如果有一种方法可以用来创建URL,那将会非常好。 AjaxHelper / HtmlExtensions包含创建超链接的方法(.ActionLink(…)等),但如果你研究它们的内容,它们依赖于一个名为UrlHelper.GenerateUrl()的方法将控制器和动作解析为一个url。 这是内部的,所以我无法真正理解这一点。 有人在框架中找到了一个很好的方法吗? 或者我必须自己动手?

在ASP.NET 5(vNext)MVC 6中添加自定义IRouter

我正在尝试将此示例RouteBase实现转换为与MVC 6一起使用。我已经通过遵循路由项目中的示例来解决大部分问题,但是我正在了解如何从方法返回异步Task 。 我真的不在乎它是否实际上是异步的(对能够提供该答案的任何人欢呼),现在我只想让它运转起来。 我有传出路线function(意味着当我输入路线值时, ActionLink工作正常)。 问题出在RouteAsync方法上。 public Task RouteAsync(RouteContext context) { var requestPath = context.HttpContext.Request.Path.Value; if (!string.IsNullOrEmpty(requestPath) && requestPath[0] == ‘/’) { // Trim the leading slash requestPath = requestPath.Substring(1); } // Get the page that matches. var page = GetPageList() .Where(x => x.VirtualPath.Equals(requestPath)) .FirstOrDefault(); // If we got back a null value set, […]