asp.net-mvc-3 相关问题

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

模板只能用于字段访问、属性访问、一维数组索引错误

我有一个这样的模型: 公共部分类 ClassTime { 公共 int Id { 得到;放; } 公共 int ScheduleId { 获取;放; } 公共 System.TimeSpan StartClassTime { 获取;放; } 公开

回答 3 投票 0

请求 URL 在 IIS 7 中无效

这是我的网址 http://abc.domain.com/controller/action/

回答 3 投票 0

如何修改 LabelFor 以在必填字段上显示星号?

我想为 HtmlHelper 创建一个扩展方法,它允许我创建一个 LabelFor 属性,如果它是必填字段,则在其后面显示一个星号。我怎样才能做到这一点? 公共课 Foo { [

回答 14 投票 0

本地主机无法在 Chrome 和 Firefox 中工作

我正在使用 Visual Studio 2010(MVC3 Razor) 和 Windows 7 做一个 Web 项目。 我的默认浏览器是IE。当我运行该项目时,网站与 url 完美配合 http://localhost:498...

回答 14 投票 0

对静态类进行单元测试(理论问题)

我知道什么时候可以使用静态类,但我的简单问题是: 当我们对具有静态类的代码进行单元测试时,是否存在大问题? 使用常规实例类更好吗? 那个...

回答 1 投票 0

使用属性防止在 ASP.NET MVC 中缓存特定操作

我有一个 ASP.NET MVC 3 应用程序。该应用程序通过 jQuery 请求记录。 jQuery 回调控制器操作,以 JSON 格式返回结果。我还没能证明...

回答 9 投票 0

如何在 Razor 中定义方法?

如何在 Razor 中定义方法?

回答 8 投票 0

为什么需要JsonRequestBehavior?

为什么需要 Json 请求行为? 如果我想将 HttpGet 请求限制在我的操作中,我可以使用 [HttpPost] 属性来装饰该操作 例子: [http邮报] 公共 JsonResult Foo() {...

回答 5 投票 0

从网站 ASP.NET MVC3 提取元数据

我一直在兜圈子试图从外部网站提取元标记信息。我开始使用 XML 方法,但由于标签链接文档类型等,我的应用程序不断抛出错误...

回答 2 投票 0

带有自定义参数的Html.DropDownListFor()

我想在 HTML 帮助器中添加扩展方法来生成这样的选择和选项 安道尔... 我想在 HTML 帮助程序中添加扩展方法来生成这样的选择和选项 <select id="Country" name="Country"> <option data-domain="AN" value="1">Andorra</option> <option data-domain="UI" value="2">United Arab Emirates</option> <option data-domain="AF" value="3">Afghanistan</option> 选项有一个数据域属性,我可以这样使用它 @Html.DropDownListFor(m => m.Country, Model.CountryList) Model.CountryList 是国家/地区变量的数组 class Country { public String Text { get; set; } public String Value { get; set; } public String Domain { get; set; } } 请谁能给出解决方案 您可以在自定义帮助器方法的帮助下构建您的CustomDropdownListFor,如下所示: 自定义辅助方法: public static class CustomHelpers { public class CustomSelectItem : SelectListItem { public string Class { get; set; } public string Disabled { get; set; } public string SelectedValue { get; set; } } public static MvcHtmlString CustomDropdownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<CustomSelectItem> list, string selectedValue, string optionLabel, object htmlAttributes = null) { if (expression == null) { throw new ArgumentNullException("expression"); } ModelMetadata metadata = ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, htmlHelper.ViewData); string name = ExpressionHelper.GetExpressionText((LambdaExpression)expression); return CustomDropdownList(htmlHelper, metadata, name, optionLabel, list, selectedValue, HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)); } private static MvcHtmlString CustomDropdownList(this HtmlHelper htmlHelper, ModelMetadata metadata, string name, string optionLabel, IEnumerable<CustomSelectItem> list, string selectedValue, IDictionary<string, object> htmlAttributes) { string fullName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name); if (String.IsNullOrEmpty(fullName)) { throw new ArgumentException("name"); } TagBuilder dropdown = new TagBuilder("select"); dropdown.Attributes.Add("name", fullName); dropdown.MergeAttribute("data-val", "true"); dropdown.MergeAttribute("data-val-required", "Mandatory field."); dropdown.MergeAttribute("data-val-number", "The field must be a number."); dropdown.MergeAttributes(htmlAttributes); //dropdown.MergeAttributes(new RouteValueDictionary(htmlAttributes)); dropdown.MergeAttributes(htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata)); StringBuilder options = new StringBuilder(); // Make optionLabel the first item that gets rendered. if (optionLabel != null) options.Append("<option value='" + String.Empty + "'>" + optionLabel + "</option>"); foreach (var item in list) { if (item.SelectedValue == "selected" && item.Disabled == "disabled") options.Append("<option value='" + item.Value + "' class='" + item.Class + "' selected='" + item.SelectedValue + "' disabled='" + item.Disabled + "'>" + item.Text + "</option>"); else if (item.SelectedValue != "selected" && item.Disabled == "disabled") options.Append("<option value='" + item.Value + "' class='" + item.Class + "' disabled='" + item.Disabled + "'>" + item.Text + "</option>"); else if (item.SelectedValue == "selected" && item.Disabled != "disabled") options.Append("<option value='" + item.Value + "' class='" + item.Class + "' selected='" + item.SelectedValue + "'>" + item.Text + "</option>"); else options.Append("<option value='" + item.Value + "' class='" + item.Class + "'>" + item.Text + "</option>"); } dropdown.InnerHtml = options.ToString(); return MvcHtmlString.Create(dropdown.ToString(TagRenderMode.Normal)); } } 视图(剃须刀): @Html.CustomDropdownListFor(m => m.PersonId, ViewBag.PersonData as List<CustomHelpers.CustomSelectItem>, null, "---- Select ----", new { name = "personId", id = "personId"}) @Html.ValidationMessageFor(m => m.PersonId, null , new { @class = "ValidationErrors" }) 标准 DropDownList/DropDownListFor 助手不支持此功能。如果您需要此类功能,则必须从头开始编写自定义 HTML 帮助程序。您可以查看这个示例。还有另一个。 方法: public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListCodeItem> selectList) { var select = new TagBuilder("select"); var options = ""; TagBuilder option; foreach (var item in selectList) { option = new TagBuilder("option"); option.MergeAttribute("value", item.Value.ToString()); option.MergeAttribute("data-domain", item.Code.ToString()); option.SetInnerText(item.Text); options += option.ToString(TagRenderMode.Normal) + "\n"; } select.MergeAttribute("data-val", "true"); select.MergeAttribute("data-val-required", "The field is required."); select.MergeAttribute("id", name); select.MergeAttribute("name", name); select.InnerHtml = options; return new MvcHtmlString(select.ToString(TagRenderMode.Normal)); } 致电: @Html.DropDownList("name" Model.OrganizationTypeList) 稍微重构 Murat 的答案 public static class MvcHelpers { public class CustomSelectItem : SelectListItem { public string Class { get; set; } } public static MvcHtmlString CustomDropdownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<CustomSelectItem> list, string selectedValue, string optionLabel, object htmlAttributes = null) { if (expression == null) { throw new ArgumentNullException(nameof(expression)); } var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData); var name = ExpressionHelper.GetExpressionText(expression); return CustomDropdownList(htmlHelper, metadata, name, optionLabel, list, selectedValue, HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)); } private static MvcHtmlString CustomDropdownList(HtmlHelper htmlHelper, ModelMetadata metadata, string name, string optionLabel, IEnumerable<CustomSelectItem> list, string selectedValue, IDictionary<string, object> htmlAttributes) { var fullName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name); if (string.IsNullOrWhiteSpace(fullName)) { throw new ArgumentException("Name cannot be null or empty.", nameof(name)); } var dropdown = new TagBuilder("select") { Attributes = { { "name", fullName }, { "data-val", "true" }, { "data-val-required", "Mandatory field." }, { "data-val-number", "The field must be a number." } } }; dropdown.MergeAttributes(htmlAttributes); dropdown.MergeAttributes(htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata)); var options = new StringBuilder(); if (!string.IsNullOrEmpty(optionLabel)) { options.Append($ "<option value=''>{optionLabel}</option>"); } foreach (var item in list) { options.Append(CreateOption(item)); } dropdown.InnerHtml = options.ToString(); return MvcHtmlString.Create(dropdown.ToString(TagRenderMode.Normal)); } private static string CreateOption(CustomSelectItem item) { var disabledAttribute = item.Disabled ? "disabled" : string.Empty; var selectedAttribute = item.Selected ? "selected" : string.Empty; return $"<option value='{item.Value}' class='{item.Class}' {disabledAttribute} {selectedAttribute}>{item.Text}</option>"; } }

回答 0 投票 0

使用分页列表时丢失所有视图模型数据

刚刚使用分页列表插件将分页添加到我的视图中,我只能将一页的数据带回。如果您单击“下一步”或任何其他可用页码,页面将重新提交...

回答 2 投票 0

Ajax WebGrid 分页 MVC3

我正在使用WebGrid,我需要使用Ajax 在页面之间切换。 索引代码 <p>我正在使用 <pre><code>WebGrid</code></pre>,我需要使用 Ajax 在页面之间切换。</p> <p><strong>索引代码</strong></p> <pre><code>&lt;script src=&#34;../../Scripts/jquery.unobtrusive-ajax.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt; &lt;script src=&#34;../../Scripts/jquery-1.5.1.min.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt; @using (Ajax.BeginForm(&#34;GetGrid&#34;, new AjaxOptions() { UpdateTargetId = &#34;Res&#34; })) { &lt;input type=&#34;text&#34; /&gt; &lt;input type=&#34;submit&#34; value=&#34;start&#34; /&gt; &lt;div id=&#34;Res&#34;&gt; &lt;/div&gt; } </code></pre> <p><strong>结果部分视图</strong></p> <pre><code>@model IEnumerable&lt;MvcApplication1.Controllers.Model&gt; &lt;div id=&#34;grid2&#34;&gt; @{ var grid = new WebGrid(source:Model,rowsPerPage:6,ajaxUpdateContainerId: &#34;grid2&#34;); @grid.GetHtml(htmlAttributes: new { id = &#34;grid2&#34; }, columns: grid.Columns( grid.Column(&#34;Someting&#34;) )); } &lt;/div&gt; </code></pre> <p><strong>控制器代码</strong></p> <pre><code> public class ABCController : Controller { // // GET: /ABC/ public ActionResult Index() { return View(); } public static List&lt;Model&gt; mo = new List&lt;Model&gt;(); [HttpPost] public ActionResult GetGrid() { for (int i = 0; i &lt; 1000; i++) { mo.Add(new Model() { Someting = i.ToString() }); } return PartialView(&#34;Result&#34;, mo); } } public class Model { public string Someting { get; set; } } </code></pre> <p>这适用于首页,但其他页面没有任何反应。</p> </question> <answer tick="true" vote="1"> <p>几个小时后,我找不到一些对我有帮助的东西。我注意到我的页面链接的 html 代码。 页面链接 </p> <pre><code>&lt;a href=&#34;#&#34; onclick=&#34;$(&#39;#grid2&#39;).load(&#39;/ABC/GetGrid?page=2&amp;amp;__=635163360142144025 #grid2&#39;);&#34;&gt;2&lt;/a&gt; </code></pre> <p>所以我终于明白了它是如何工作的。我向我的控制器添加了一个<pre><code>ActioResult</code></pre>,如下所示:</p> <pre><code> [HttpGet] public ActionResult GetGrid(int page) { return PartialView(&#34;Result&#34;,mo); } </code></pre> <p>并且有效。我希望这对某些人有帮助</p> </answer> </body></html>

回答 0 投票 0

在mvc3 webgrid中实现行号和分页?

我想为网络网格自动生成行号,我可以使用下面的代码来做到这一点 grid.Column(标题:“行号”,格式:item => item.WebGrid.Rows.IndexOf(item) + 1), 问题...

回答 2 投票 0

mvc4中无回发的分页

我必须在MVC4中实现分页而不需要回发。我已经实现了带有回发的分页。 公共 ActionResult 索引(int? page) { var model = 来自 db.Country 中的 r ...

回答 1 投票 0

在模型优先方法上使用分页列表?

我想使用分页列表在我的视图中对数据进行分页,我之前使用网络网格完成了此操作,但发现使用模型优先方法很难做到这一点。任何帮助都会很大

回答 2 投票 0

使用razor在MVC3上实现分页

我想用 Razor 在 MVC3 上实现分页和排序功能。 是否有任何内置功能?或者需要手动执行。 有人有这方面的文章吗

回答 3 投票 0

如何在asp.net mvc3中进行分页?

我正在开发 asp.net mvc3 应用程序,并且有许多来自数据库的记录。我想先只显示 10 条记录,然后用户可以单击按钮查看接下来的 10 条记录,依此类推...喜欢

回答 4 投票 0

脚手架视图中的分页MVC3

所以使用 EF4 我创建了一个脚手架控制器/视图,所以我的问题是如何以简单/快速的方式将分页添加到我的视图? 这 控制器生成 公共ViewResult索引() {

回答 3 投票 0

如何在asp.net mvc3应用程序中设置分页路由

我在我的应用程序中设置了简单的分页系统,该系统使用 nerddinner 教程中的想法,使用分页列表类: 公共类分页列表:列表 { 噗...

回答 2 投票 0

Razor 嵌套 WebGrid

我如何嵌套 WebGrid,并为每列设置大量格式。我可以做一个嵌套的 for 循环,但我基本上需要它来进行分页。或者还有其他更好的选择吗?

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.