iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 28
0
Modern Web

我的30天MVC從零到不知道多少學習筆記系列 第 28

從零開始的MVC開發-HtmlHelper.ActionLink以及button

標題打得很怪,其實是不知道該怎麼命題(汗

直接切入正題吧
HtmlHelper的ActionLink可以幫助產生一個連結到到指定的action
基基本的使用方法是
@Html.ActionLink("詳情","detail")
前面是連結顯示的文字,後面是action

如果是跨controller可以這樣寫
@Html.ActionLink("詳情","detail","Student")
分別是顯示文字,action,controller

如果還想帶值過去action,可以這樣
@Html.ActionLink("詳情","detail","Student",new{id=item.id})
代表帶的參數是id,裡面的值請自己看要塞什麼

如果還想加上一些htmlAttributes,可以這樣寫~
@Html.ActionLink("刪除","Index",new{id=item.id},new {@class="btn btn-default"})
搭配上bootstrap,就從原本的超連結,變成button了!!

好的,以上的方式連過去的話其實跟直接打在網址是一樣的!
這種方式不適合用在刪除資料,或是有安全性考量的內容上~
我們的action前方都可以加上標籤,來增強一些安全性~
若在action的前,加上了[HttpPost]的標籤
這樣直接打在網址上就無法連到了,使用actionLink的方式也同樣沒有作用
所以我們要改變寫法~~改用form的方式~

在view加上

@using(@Html.BeginForm("Delete","Student",FormMethod.Post)){
    @hidden("id",item.id)
    <input type="submit" value="刪除" class="btn btn-default"/>
}

用form的方式指定action,以及設定method為Post
把要帶入的值用hidden的方式帶過去~
雖然寫法比較麻煩,但是為了安全性的考量~
還是必須要這樣寫會比較好唷!!


上一篇
從零開始的MVC開發-使用HtmlHelper產生SelectList
下一篇
從零開始的MVC開發-使用bootstrap的datetimepicker
系列文
我的30天MVC從零到不知道多少學習筆記30

尚未有邦友留言

立即登入留言