[英]How to send model from View to bool method with AJAX in MVC ASP.NET
[英]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.