比起Web Form開發,在後端(.cs)寫法上大同小異,可選擇C#或VB.NET來撰寫;而在前端(.cshtml、.vbhtml)則有比較大的差別,自 MVC3版本後,就以Razor為前端檢視引擎,本篇就針對前端語法在撰寫時常犯的錯誤及重點做說明。

 
(1) 註解
在以往.aspx檔案,我們習慣以html主解 /* */ 或是使用.net註解<%-- --%>
而在.cshtml中,則使用@* 此行為註解 *@ 來表示。
 
 
(2) 在前端(*.cshtml)撰寫後端(*.cs)語法 
以往在Web Form專案時,如果需要將.cs語法寫在aspx,就會寫成:
<% Response.Write("Hello  World"); %>
而在.cshtml則會改成 @{ xxx; },如下:
@{  Response.Write("Hello  World"); }
需注意結尾需加分號「;」否則會出錯。
 
另外,如果使用@ViewBag或是Html Helper時,結尾則不需加分號,如下:
@ViewBag.Say
@Html.BeginForm()
@Html.ActionLink("Add Member", "Edit", "Travel")
 
值得一提的是,使用Razor語法@時,後面的字母需緊鄰在@後,不能有空格否則會出錯。舉上例為例
@ViewBag.Say不能寫成 @ ViewBag.Say
@Html.BeginForm() 不能寫成@ Html.BeginForm()
@Html.ActionLink("Add Member", "Edit", "Travel")不能寫成@ Html.ActionLink("Add Member", "Edit", "Travel")
 
 
(3) 引用外部JavaScript或CSS檔案
Razor有個寫法Url.Content()是將相對路徑轉為絕對路徑,與Server .Mapth()相似,語法如下:
 <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")"></script>
 
(4) 導頁寫法
如在前端需要增加按鈕或連超來執行導頁,可以有以下做法:
 
1. Link
@Html.ActionLink("Add Member", "Edit", "Travel")
參數1為link名稱
參數2為action名稱,也就是controller裡的method名稱
參數3為controller名稱
 
* 延伸說明
在.Net MVC寫法中,有overloading的參數指定到action或是controller時,
都是先指定action,再指定controller,例如:
@Html.ActionLink("Add Member", "Edit", "Travel")
@Html.BeginForm("Edit", "Travel", FormMethod.Post)
@Url.Action("Index","Mail")
 
2. Button
如欲顯示按鈕時,導向的頁面可使用@Url.Action(action,controller) 來指定。
<input type="button" value="重新填寫" onclick="javascript:window.location='@Url.Action("Edit", "USERLOG")'" />
*如要action到原來的controller,則可省略第二個參數,直接寫成@Url.Action("Edit")即可。
 
(5) 輸出JavaScript
在網路上參考眾多文章後,最後還是習慣TempData來輸出,TempData生命週期只存在一個Request,適合做錯誤或訊息的輸出,方式如下:
 
Controller:
1 public ActionResult Delete(ContactUs us)
2        {
3   //判斷資料更新成功與否
4            if (_IMailRepository.UpdateMailStatus(us, 2) > 0)
5                TempData["Msg"] = "更新成功!";
6            else
7                TempData["Msg"] = "更新失敗!";
8            return View("Index");
9        }
 
View (Index.cshtml):
1 <script type="text/javascript"><![CDATA[  
2     var msg= "@TempData["Msg"]"
3     if(msg!=""){alert(msg);}  
4 ]]></script>
參考網址: http://msdn.microsoft.com/zh-tw/library/dd394711(v=vs.100).aspx

Razor button的更多相关文章

  1. Blazor入门笔记(2)-分部类组件与组件的继承

    1.前言 本文接自Blazor的组件(1)-从0构建一个组件 2.分部类组件 Razor组件你可理解为就是一个类名与文件名相同的类,因此,可以新建一个同名的partial类,将组件中@code里面的代 ...

  2. MAUI Blazor 权限经验分享 (定位,使用相机)

    入门文章 Blazor Hybrid / MAUI 简介和实战 https://www.cnblogs.com/densen2014/p/16240966.html 在 Mac 上开发 .NET MA ...

  3. ASP.NET Core 中文文档 第四章 MVC(3.2)Razor 语法参考

    原文:Razor Syntax Reference 作者:Taylor Mullen.Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:何镇汐 什么是 Razor? Razor 是一 ...

  4. CKEditor Html Helpers for ASP.NET MVC3 Razor/WebForms Views

    一.原生方法: 在 razor 中 使用Fckeditor 编辑内容,需要引入js <script src="@Url.Content("~/fckeditor/fckedi ...

  5. 实例演示 kino.razor (前端 Javascript 模板工具,Razor 风格)的使用

    前言 对于习惯了 ASP.NET MVC Razor 模板引擎的人来说,比如我,一直在寻找前端 Javascript 端的 Razor 模板工具.这之前,我也了解到很多Javascript 端的模板工 ...

  6. Razor视图引擎语法

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...

  7. Introduction to ASP.NET Web Programming Using the Razor Syntax (C#)

    1, http://www.asp.net/web-pages/overview/getting-started/introducing-razor-syntax-c 2, Introduction ...

  8. ASP.NET MVC Razor视图引擎攻略

    --引子 看下面一段MVC 2.0的代码. <%if (Model != null){%> <p><%=Model%></p><%}%>&l ...

  9. ASP.NET Mvc Razor视图语法

    在ASP.NET MVC中有两套模版引擎,一套是ASPX,一套是Razor,从事过WebForms开发的朋友们,对于ASPX模版已经很熟悉了,下面我说一下我所熟悉的Razor模版引擎的一些语法,供大家 ...

随机推荐

  1. Linux Socket编程注意事项

    Socket API 是网络应用程序开发中实际应用的标准 API.虽然该 API 简单.可是开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示怎样避免它们. 隐患 1.忽略返回状态 ...

  2. 【iOS发展-44】通过案例谈iOS重构:合并、格式化输出、宏观变量、使用数组来存储数据字典,而且使用plist最终的知识

    我们今天的情况下是第一个例子,下面的5一来通过切换页上一页下一页: (1)第一步,基本是以非常傻非常直接的方式来创建.这里用到的主要点有: --把对象变量设置为全局变量使得能够在其它方法中调用来设置它 ...

  3. [Android学习笔记]startActivityForResult和onActivityResult的使用

    发开过程中,免不了多个页面之间相互交互通信. Android中使用startActivityForResult方法和onActivityResult配合完成任务 startActivityForRes ...

  4. [Windows Phone]模仿魔兽3技能按钮SkillButton

    简介: 模仿魔兽3技能按钮,带CD效果.使用的时候可以当做普通按钮使用,同时也支持Binding. 音效紧耦合在控件内部,因为控件本身目的就是模拟魔兽3的技能按钮,所以不考虑音效的扩展. Demo结构 ...

  5. C语言中scanf/fscanf 的%[]和%n说明符的使用方法

    标准输入输出函数%[]和%n说明符的使用方法     scanf fscanf,均从第一个非空格的可显示字符开始读起!         标准输入输出函数scanf具有相对较多的转换说明符,它常常作为入 ...

  6. Android实现位图剪切

    我们不能总是依赖于BitmapFactory 以下告诉大家怎么从Bitmaqp中截取某一部分创建新的Bitmap  系统会有一个默认png图片:icon.png 可是这个图片中最外层会有白色的 比較讨 ...

  7. fusionchart实现ZoomLine 源码 破解版 能够导出

    近期画油量曲线须要用到ZoomLine官网看了好几天.如今整理出来供大家參考使用 zoomline.html源码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD ...

  8. ASA虚墙配置

    asa配置ASA Version 8.0(2) <system>!hostname ASA5520enable password 2KFQnbNIdI.2KYOU encryptedno ...

  9. DataTable数据转换为实体

    我们在用三层架构编写软件时,常常会遇到例如以下问题,就是三层之间的參数传递问题:假设我们在D层查询出数据是DataTable类型的,那么我们在B层甚至U层使用这条数据时,就要用DataTable类型来 ...

  10. Beijing Perl Workshop - Augest 10th, 2013

    Beijing Perl Workshop - Augest 10th, 2013 Beijing Perl Workshop