簡體   English   中英

將布爾從視圖/ ActionLink返回到方法-Asp.Net MVC

[英]Return bool from view/ActionLink to method - Asp.Net MVC

我必須在內部傳遞一個布爾值-> "@Html.ActionLink(" ", "Like", new { id = Model.Id @*, Pass bool value here *@}".我的模型不包含布爾值屬性,也不能添加它(首先是數據庫)或用ViewModel替換模型。是否仍然可以通過某種方式將bool值傳遞給我的方法?

我的方法Like簽名接受一個Guid Id和一個bool參數。

我能以某種方式通過bool:

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

至:

 public ActionResult Like(Guid id, bool getBool) 
        {
            if (getBool == true){    

                return Content("Liked!");

            }else if (getBool == false){    

                return Content("Disiked!");
            }

任何想法如何將布爾值從視圖傳遞到控制器?

您通過傳遞模型ID的方式傳遞布爾值:

@Html.ActionLink("Like!",   "Like", new { id = Model.Id, getBool = true})
@Html.ActionLink("Disike!", "Like", new { id = Model.Id, getBool = false})

最終, Model.Id沒什么特別的。 這只是一個Guid 傳入的值不必特別來自任何地方。 隨便傳。

沒有這樣的事情“我不能用ViewModel替換模型”。 這就是ViewModel的想法,即制作一個與數據庫模型不同並適合視圖要求的模型。

例如,如果您的數據庫中有此模型:

     public  class Person
    {
       public int PersonID { get; set;}
       public string Name { get; set;}
       public string password { get; set;}
    }

並且您想要在視圖中驗證密碼,而無需在模型中成為驗證密碼的屬性,您可以在ViewModel類中執行以下操作:

public class PersonVM :Person
{
       public string verifyPassword { get; set;}
} 

請注意,並非總會繼承VM中的原始模型。

創建VM后,您將創建一個視圖,該視圖的模型就是您為該視圖創建的VM。 這樣,您就可以通過視圖並獲取任何其他信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM