比起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. MySQL学习笔记之中的一个 MySQL入门

    本人之前接触的关系型数据库主要是oracle和sqlserver,而对于mysql知之甚少,但查阅网上资料发现,mysql与oracle非常相似,所以学起来应该不会非常费劲,在总结的时候可能很多其它的 ...

  2. 介绍linux下Source Insight强大代码编辑器sublime_text_3

    背景 1 一. 运行环境 1 二.安装环境配置 1 三.创建快捷方式 1 四.配置全局环境 2 五.操作界面 3 背景 在windows操作系统系统下,文本代码编辑器众多,各路英雄豪杰争相写了许多强大 ...

  3. oracle 密码文件文件

    密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. 本地登录: 1)操作系统认证: [oracle@ ...

  4. OpenRisc-50-or1200的freeze模块分析

    引言 之前,我们分析or1200的控制通路中的sprs模块和except模块,本小节,我们就分析一下or1200控制通路的最后一个模块,就是freeze模块. 1,整体分析 freeze模块,顾名思义 ...

  5. 2014辽宁省赛 Repeat Number

    问题 C: Repeat Number 时间限制: 1 Sec  内存限制: 128 MB [cid=1073&pid=2&langmask=0">提交][状态][论坛 ...

  6. Linux共享wifi给Android手机

    亲測可行,測试系统:Deepin2014,Ubuntu也一样.步骤很easy. 1.卸载hostapd,sudo apt-get remove hostapd(假设原来装过的话卸载,由于某些版本号不支 ...

  7. 我在开发网站后得出的asp.Net网站优化总结

    原文:我在开发网站后得出的asp.Net网站优化总结 asp.Net网站优化总结: 1.数据库优化: 首先是对查询语句的优化,开发时为了图快可以不考虑,但是后期维护时就必须要优化(比如:你调用代码生成 ...

  8. BZOJ 3112 Zjoi2013 防守战线 单纯形

    题目大意: 单纯形*2.. . #include <cmath> #include <cstdio> #include <cstring> #include < ...

  9. Java 模拟队列(一般队列、双端队列、优先级队列)

    队列: 先进先出,处理类似排队的问题,先排的.先处理,后排的等前面的处理完了,再处理 对于插入和移除操作的时间复杂度都为O(1).从后面插入,从前面移除 双端队列: 即在队列两端都能够insert和r ...

  10. tomcat实现多端口、多域名访问

    tomcat实现多端口访问 tomcat可以实现:多个端口访问同一个web应用.不同的应用通过不同的域名进行访问. 本文介绍的都是只启动一个tomcat服务的情况下,当然,实现这些功能也可以通过启动多 ...