標題打得很怪,其實是不知道該怎麼命題(汗
直接切入正題吧
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的方式帶過去~
雖然寫法比較麻煩,但是為了安全性的考量~
還是必須要這樣寫會比較好唷!!