ASP.NET MVC中几个运用技巧
1. Razor Helpers 的运用:
例如,定义好 ViewBag.Message = "Welcome to ASP.NET MVC!";我要在界面上显示
"Welcome ..."; 那我们一般有2种操作,3种实现操作:
2种操作:
Extension Method off HtmlHelpers 和 Razor Declarative @Helper Sytnax
3种实现方式:
一、 Extension Method
在当前项目下建立一个文件夹,命名为Helpers,在这个文件夹下添加 HtmlHelpers类,具体实现如下
namespace MVCET.Helpers
{
public static class HtmlHelpers
{
public static string Truncat(this HtmlHelper helper, string input, int length)
{
if (input.Length <= length)
{
return input;
}
else
{
return input.Substring(0, length) + "...";
}
}
}
}
这时候,在页面上只要添加这样的代码就可以显示了:
@using MVCET.Helpers
<h2>@Html.Truncat(@ViewBag.Message as string,8)</h2>
二、 Razor Declarative @Helper Sytnax
1. 在当前页面添加如下代码:
@helper Truncat(string input, int length)
{
if(input.Length<=length)
{
@input
}
else
{
@input.Substring(0,length)<text>...(Razor)</text>
}
}
再添加这行代码:
<h2>@Truncat(@ViewBag.Message as string, 8)</h2>
显示的结果和上面的事一模一样的。
2. 添加App_Code 文件夹,然后添加RazorHelper.cshtml Razor 文件。声明如下:
@helper Truncat(string input, int length)
{
if(input.Length<=length)
{
@input
}
else
{
@input.Substring(0,length)<text>...(Razor)</text>
}
}
在页面上添加以下代码:
<h2>@RazorHelper.Truncat(@ViewBag.Message,8)</h2>
运行,我们看到结果是一样的。
-----------------------------------------------------------------
2.运用Linq进行带参查询
如果说,在Index 页面中添加了参数,那么我们就可以有很多种方式给其传参,让其响应事件。 例如,在下面的例子中,可以有一个快捷方式去查看Shanghai 的Restaurant.
第一种:通过@Html.ActionLink()
在RestaurantControl 中添加以下代码
OdeToFoodDB _db = new OdeToFoodDB();
public ActionResult Index(string city)
{
var model = from r in _db.Restaurants
where r.Adress.City == city ||(city==null)
orderby r.Name
select r;
return View(model);
}
在Restaurant的View 中,Index页面写入一下代码:
<p>@Html.ActionLink("To see Restaurant in shanghai","Index","Restaurant",new {city="Shanghai"},null)</p>
第二种:绑定字段
添加DownloadList列表,让其通过选项进行自由选择。DownloadList可以绑定字段。
在RestaurantControl 中添加以下代码:
OdeToFoodDB _db = new OdeToFoodDB();
public ActionResult Index(string city)
{
ViewBag.City = _db.Restaurants.Select(r => r.Adress.City).Distinct();
var model = from r in _db.Restaurants
where r.Adress.City == city ||(city==null)
orderby r.Name
select r;
//var model = _db.Restaurants
// .Where(r => r.Adress.City == "Guangdong")
// .OrderBy(r => r.Name);
return View(model);
}
在Restaurant的View 中,Index页面写入一下代码:
@using (Html.BeginForm("Index","Restaurant",FormMethod.Get))
{
@Html.DropDownList("City",new SelectList(ViewBag.City))
<input type="submit" value="Filter" />
}
在这里,我让DropDownList 绑定了一个dynamic 类型(ViewBag.City)的数据。
ASP.NET MVC中几个运用技巧的更多相关文章
- 《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章 ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...
- 在ASP.NET MVC中使用IIS级别的URL Rewrite
原文 在ASP.NET MVC中使用IIS级别的URL Rewrite 大约一年半前,我在博客上写过一系列关于URL Rewrite的文章(2.3.4),把ASP.NET平台上进行URL Rewrit ...
- 2.ASP.NET MVC 中使用Crystal Report水晶报表
上一篇,介绍了怎么导出Excel文件,这篇文章介绍在ASP.NET MVC中使用水晶报表. 项目源码下载:https://github.com/caofangsheng93/CrystalReport ...
- 关于 ASP.NET MVC 中的视图生成
在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通 ...
- 在Asp.Net MVC 中配置 Serilog
Serilog 是一种非常简便记录log 的处理方式,使用Serilog可以生成本地的text文件, 也可以通过 Seq 来在Web界面中查看具体的log内容. 接下来就简单的介绍一下在Asp.Net ...
- 如何在 ASP.NET MVC 中集成 AngularJS(3)
今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表 ...
- 如何在 ASP.NET MVC 中集成 AngularJS(2)
在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中 ...
- asp.net mvc 中 一种简单的 URL 重写
asp.net mvc 中 一种简单的 URL 重写 Intro 在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化, ...
- 在 ASP.NET MVC 中充分利用 WebGrid (microsoft 官方示例)
在 ASP.NET MVC 中充分利用 WebGrid https://msdn.microsoft.com/zh-cn/magazine/hh288075.aspx Stuart Leeks 下载代 ...
随机推荐
- GOOGLE 离线完整安装包下载地址
https://support.google.com/chrome/answer/126299?hl=zh-Hans 官方链接介绍 https://www.google.com/chrome/brow ...
- Rails学习:create操作 局部模板
学习Ruby on Rails实战真经 里面说rails4使用了strong parameters, 所以代码这么写:注意不是Event.new(params[:event])了,而是参数是函数返回值 ...
- 刀哥多线程之并发队列gcd-05-dispatch_queue_concurrent
并发队列 特点 以先进先出的方式,并发调度队列中的任务执行 如果当前调度的任务是同步执行的,会等待任务执行完成后,再调度后续的任务 如果当前调度的任务是异步执行的,同时底层线程池有可用的线程资源,会再 ...
- AppCan认为,移动APP开发不是技术活
很多粉丝反应,AppCan的文章太专业了,技术大大们毫不费劲,小白看的晕乎乎. 时代变了,5年前,AppCan的受众只有开发者.现在,政府高管.集团董事长.非技术类管理者.中小企业主.各行各业的管理者 ...
- C#中的Attribute
最近用到了,所以静下心来找些资料看了一下,终于把这东西搞清楚了. 一.什么是Attribute 先看下面的三段代码: 1.自定义Attribute类:VersionAttribute [Attribu ...
- iPhone的震动 基于SDK8.0 Swift实现
导入AudioToolbox.framework包 在swift文件中 import AudioToolbox AudioServicesPlaySystemSound(SystemSoundID. ...
- modelsim仿真错误解决办法
编译不成功可能是因为: 1.本身程序有问题. 2.没有设置顶层文件 3.modelsim 出现错误是不要只是看错误的地方,也要看前面的一部分
- Python实现LR(逻辑回归)
Python实现LR(逻辑回归) 运行环境 Pyhton3 numpy(科学计算包) matplotlib(画图所需,不画图可不必) 计算过程 st=>start: 开始 e=>end o ...
- linux 简单的DMA例程
一个简单的使用DMA 例子 示例:下面是一个简单的使用DMA进行传输的驱动程序,它是一个假想的设备,只列出DMA相关的部分来说明驱动程序中如何使用DMA的. 函数dad_transfer是设置DMA对 ...
- urllib3 PoolManager
A pool manager is an abstraction for a collection of ConnectionPools.If you need to make requests to ...