2016-10-05 28 views
0

私は内部のブール値を渡すようにしました - 署名のように私のメソッドは、パラメータでGuid Idboolを取る>"@Html.ActionLink(" ", "Like", new { id = Model.Id @*, Pass bool value here *@}".ActionLink内でbool値を渡す方法(ビューからコントロールへ)

私は次のようにしてみました:

bool passBool = true; 
    @Html.ActionLink("Like!", "Like", new { id = Model.Id, passBool} 
    @Html.ActionLink("Disike!", "Like", new { id = Model.Id, passBool = false} 

しかし、私はヌルとしてそれを受け取ります。

public ActionResult Like(Guid id, bool? getBool) //gets null error without '?' 
     { 
      if (getBool == true){  

       return Content("Liked!"); 

      }else if (getBool == false){  

       return Content("Disiked!"); 
      } 

私もそれが成功せずにビューモデル谷修正しようとした:

var liked = new Test.ViewModel.LikeViewModel {LikeDislike = true}; 

@Html.ActionLink("Like!", "Like", new { id = Model.Id, liked} 

をしかし、私はそれらを渡すときに、これらのブール値は、まだヌルであるため、それは動作しません。ビューからコントローラにブール値を渡す方法

答えて

2

あなたはそれがあなたのコントローラのアクションと一致するように、あなたが渡しているパラメータの名前を指定する必要があります。

@Html.ActionLink("Like!", "Like", new { id = Model.Id,getBool= passBool} 
+0

私は言及を忘れてしまったああ、私はそのビュー内のViewModelは使用しないでください。私が使っているモデルにはboolプロパティはありません。だからこそ、私は 'var lik = new Test.ViewModel.LikeViewModel {LikeDislike = true};によってViewModelを借りて解決しようとしました。その周りには道がありますか? – Nyprez

+1

私はあなたが借りていることが混乱しています。また、好きなような行動をするためにHTTPGet(あなたがやっていること)を使うのはお勧めしません。フォームを作成し、そのような値を掲示する必要があります。それ以外の場合は、Webクローラーや自動ツールがあなたのリンクをたどり、意味をなさないものを好むことがあります。 – jle

関連する問題