Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET MVC:是否允许helper抓取数据?

ASP.NET MVC:是否允许helper抓取数据?
EN

Stack Overflow用户
提问于 2009-05-18 22:48:51
回答 3查看 436关注 0票数 2

我的项目中的所有控制器都继承自一个基本控制器,该控制器具有一个带有实体模型的属性。

假设我有一个显示世界上城市的视图,它有一个按国家过滤的选项。国家/地区筛选器是数据库中国家/地区的下拉列表。下拉列表的Html helper请求一个IEnumerable<SelectItem>

现在有了这些信息,如果我创建一个如下所示的HtmlHelper,是否可以:

代码语言:javascript
运行
AI代码解释
复制
    public static IEnumerable<SelectListItem> GetCountries(HtmlHelper htmlHelper)
    {
        return (from c in ((BaseController) htmlHelper.ViewContext.Controller).Entities.Countries
                orderby c.Name
                select new SelectListItem() {Text = c.Name, Value = c.ID});


    }

问题不是我是否可能,而是根据MVC的方式做事情是否可以。(或者我是否应该将ViewData中的国家/地区集合放在控制器中?)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-18 23:04:17

我会将数据作为参数传递给GetCountries方法。htmlHelper函数真的不应该知道你的基本控制器的属性-如果有人在一个不是从你的基本控制器继承的控制器上使用它怎么办?我知道我知道,你控制着代码,诸如此类。如果您真的对最佳实践感兴趣,请避免依赖。

代码语言:javascript
运行
AI代码解释
复制
public static IEnumerable<SelectListItem> GetCountries(this HtmlHelper html, Countries countries) {
    return from c in countries
           order by c.Name
           select new SelectListItem 
           {
               Text = c.Name,
               Value = c.ID
           };
}

然后,在您的视图中:

代码语言:javascript
运行
AI代码解释
复制
<%=Html.GetCountries(this.Entities.Countries)%>
票数 3
EN

Stack Overflow用户

发布于 2009-05-19 06:00:04

查看ViewModel模式,它在NerdDinner教程中提到过:http://nerddinnerbook.s3.amazonaws.com/Part6.htm

基本上,您创建了一个ViewModel类,它封装了视图可能需要的所有数据。因此,您应该有一个类,其中包含所有城市和/或国家的列表,以及在控制器操作中实例化/填充的任何其他内容。

然后,您可以强输入视图以使用该ViewModel类,blammo:您已经获得了表单所需的所有数据。

票数 1
EN

Stack Overflow用户

发布于 2009-05-20 06:37:15

我认为html helper应该返回html。因此,您有两种方法:

首先,如果你想这样做,从你的htmlhelper准备你的元素列表,然后调用html.RenderDropDown的初始化列表,选定的元素等…

其次,你可以在你的模型中做好准备,这样控制器将传递初始化的对象和你需要的所有元素,所以在你的视图中你可以直接调用renderdropdown

干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/881294

复制
相关文章
七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递
通过第一天的学习之后,我们相信您已经对MVC有一些基本了解。 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容。本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV
葡萄城控件
2018/01/10
2.3K0
七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递
ASP.NET MVC 4 - 测试驱动 ASP.NET MVC
测试驱动 ASP.NET MVC Keith Burnell 下载代码示例 模型-视图-控制器 (MVC) 模式的核心是将 UI 功能划分成三个组成部分。模型表示您的领域的数据和行为。视图管理模型的显示并且处理与用户的交互。控制器协调视图和模型之间的交互。通过这样将本质上就难于测试的 UI 逻辑与业务逻辑分离开来,使得使用 MVC 模式实现的应用程序非常易于测试。在本文中,我将论述用于增强您的 ASP.NET MVC 应用程序的可测试性的最佳做法和技术,包括如何建立您的解决方案的结构、设计代码架构以便处理依
张善友
2018/01/22
5.5K0
ASP.NET MVC 4 - 测试驱动 ASP.NET MVC
iOS 判断相册相机是否允许
1 判断是否允许使用相机: NSString *mediaType = AVMediaTypeVideo; AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType]; if(authStatus == ALAuthorizationStatusRestricted ||
王大锤
2018/05/17
9170
七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理
第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验证等功能。 系列文章 七天学会ASP.NET M
葡萄城控件
2018/01/10
5.4K0
七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理
ASP.NET MVC (二、数据传递)
ASP.NET MVC是最简洁、最方便、最高效、最快速的小型网站开发的方法,本文可以让一个小白用最快速的方式学会网站开发。
红目香薰
2022/11/29
1.1K0
ASP.NET MVC (二、数据传递)
ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
我们不仅可以创建相应的模板来根据Model元数据控制种类型的数据在UI界面上的呈现方法,还可以通过一些扩展来控制Model元数据本身。在某些情况下通过这两者的结合往往可以解决很多特殊数据的呈现问题,我
蒋金楠
2018/01/15
4.9K0
ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
《asp.net core 3 高级编程(第8版)》学习笔记 02
原书的代码托管在 github: Apress/pro-asp.net-core-3: Source Code for 'Pro ASP.NET Core 3' by Adam Freeman
StoneWM
2022/08/13
1.3K0
asp.net core 系列之Response caching(1)
讲解了cache-control,及对其中的头和值的作用,及设置来控制response caching;
Vincent-yuan
2019/09/10
6840
asp.net core 系列之Response caching(1)
ASP.NET MVC 重点教程一周年版 第八回 Helper之演化
就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的。
重典
2022/04/11
3310
Asp.net mvc 知多少(三)
本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可访问http://www.dotnettricks.com/free-ebooks自行下载。该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。 由于个人技术水平和英文水平也是有限的,因此错误在所难免,希
圣杰
2018/01/11
2.4K0
Asp.net mvc 知多少(三)
ASP.NET MVC Section
本篇文章我们来讨论一下ASP.NET MVC框架中的Section。 Section主要用于将一部分代码插入到 Layout页面中的指定位置。通俗地说就是,我们先在 Layout页面中通过@RenderSection("Header")的方式挖一个坑,告诉下面的视图页面说,我这个地方有个坑,你们把你们各自相关的代码放进来吧。然后,使用该Layout的视图页面通过如下的方式将一坨坨的代码送到Layout的坑中。
全栈程序员站长
2022/09/15
7820
ASP.NET MVC使用Bootstrap系列(5)——创建ASP.NET MVC Bootstrap Helpers
序言 ASP.NET MVC允许开发者创建自定义的HTML Helpers,不管是使用静态方法还是扩展方法。一个HTML Helper本质上其实是输出一段HTML字符串。 HTML Helpers能让我们在多个页面上公用同一段HTML标记,这样不仅提高了稳定性也便于开发者去维护。当然对于这些可重用的代码,开发者也方便对他们进行单元测试。所以,创建ASP.NET MVC Bootstrap Helpers是及其有必要的。 内置的HTML Helpers ASP.NET MVC内置了若干标准HTML Hel
用户1161731
2018/01/11
1.5K0
ASP.NET MVC使用Bootstrap系列(5)——创建ASP.NET MVC Bootstrap Helpers
EntityFramework教程整理
ASP.NET MVC 系列文章 以下文章属于ASP.NET MVC 1.0 正式版 ASP.NET MVC雕虫小技 1-2 ASP.NET MVC 重点教程一周年版 第十一回 母版页、用户自定义控件及文件上传 ASP.NET MVC 重点教程一周年版 第十回 请求Controller ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper ASP.NET MVC 重点教程一周年版 第八回 Helper之演化 用ASP.NET MVC自己管理自己的View:ASP.NET MVC File
逸鹏
2018/04/09
1.1K0
ServiceStack.Host.MVC vs ASP.NET MVC
ServiceStack.Host.MVC vs ASP.NET MVC解决方案解决方案子项ServiceStack.Host.MVC(3.9.71)ASP.NET MVC(3.0)路由 路由规则1.只能配置/home/{name}/{page}形式 2.不能对匹配区域({name})指定任何形式的通配符(正则,等等)1.可配置各种形式的规则,比如:home/{name}_{page} 2.可以对匹配区域({name})指定正则匹配路由匹配url->路由表->RequestDTO->根据request.me
KenTalk
2018/09/11
9370
漏洞笔记 | ASP.NET允许文件调试
发送DEBUG动作的请求,如果服务器返回内容为OK,那么服务器就开启了调试功能,可能会导致有关Web应用程序的敏感信息泄露,例如密码、路径等。
TeamsSix
2019/12/03
2.8K0
ASP.NET MVC学习笔记04数据传递
上一篇的末尾讲到了,在了解模型之前,先来看看ASP.NET MVC是如何将数据从控制器传递给视图的。 ---- 简单梳理一下: 控制器想要请求的URL,控制器类是给您写代码来处理传入请求的地方,并从数据 库中检索数据,并最终决定什么类型的返回结果会发送回浏览器。视图模板可以被控制器 用来产生格式化过的HTML从而返回给浏览器. 控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML。 最理想的模式下:一个视图模板应该永远不会执行业务逻辑或者直接和数据
李郑
2018/03/01
2.5K0
ASP.NET MVC学习笔记04数据传递
ASP.NET MVC升级到ASP.NET Core MVC踩坑小结
ASP.NET Core是微软新推出的支持跨平台、高性能、开源的开发框架,它的优势不必多说,因为已经说得太多了。当然,现在依然有着数量庞大的系统运行于.NET Framework上,由于有大量的Break Changes,很多项目项目团队也不敢贸然升级,其中的考量也不全部是技术原因,更多的可能还是业务推进因素。
AI.NET 极客圈
2020/05/18
2.4K0
ASP.NET Core MVC 概述
ASP.NET Core MVC 是使用“模型-视图-控制器”设计模式构建 Web 应用和 API 的丰富框架。 什么是 MVC 模式? 模型-视图-控制器 (MVC) 体系结构模式将应用程序分成 3
程序你好
2018/07/20
6.7K0
ASP.NET MVC HtmlHelper类
ASP.NET MVC之 HtmlHelper 在ASP.NET MVC项目的开发中,一般会默认使用Razor视图来进行View层的编写,从而实现高效率的C#/HTML代码的混写。 示例 诸如下述代码
李郑
2018/03/01
1.9K0
ASP.NET MVC HtmlHelper类
ASP.NET MVC使用javascript
@if (IsSectionDefined(“SubMenu”)) { @RenderSection(“SubMenu”, required: false) }
全栈程序员站长
2022/09/15
8770

相似问题

ASP.NET MVC Helper

11

ASP.NET MVC @helper语法与Helper扩展方法

32

asp.net MVC中的Helper

10

ASP.NET MVC Html Helper用法

10

Asp.Net MVC Html Helper扩展

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档