我要在里面传递一个bool - > "@Html.ActionLink(" ", "Like", new { id = Model.Id @*, Pass bool value here *@}".
我的模型不包含bool属性,也不能添加它(数据库优先)或用ViewModel替换模型。是否仍然可以以某种方式将bool值传递给我的方法?
我的方法与签名一样,参数中包含Guid Id
和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!");
}
知道如何将bool值从视图传递给控制器吗?
答案 0 :(得分:2)
您传递bool的方式与传递模型ID相同:
@Html.ActionLink("Like!", "Like", new { id = Model.Id, getBool = true})
@Html.ActionLink("Disike!", "Like", new { id = Model.Id, getBool = false})
最终Model.Id
没有什么特别之处。这只是一个Guid
。传入的值不必来自任何地方。只要传递任何东西。
答案 1 :(得分:0)
没有这样的事情“我无法用ViewModel替换模型”。 这就是ViewModel的想法,即创建一个与数据库模型不同的模型,并且符合视图要求。
e.g。如果您的数据库中有此模型:
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。这样您就可以通过视图传递并获取任何其他信息。