如何在javascript中从控制器(MVC)获取布尔值?
Posted
技术标签:
【中文标题】如何在javascript中从控制器(MVC)获取布尔值?【英文标题】:How to obtain the bool from the controller (MVC) in javascript? 【发布时间】:2021-11-03 13:44:00 【问题描述】:我想根据来自Controller-Action
的返回数据显示一个弹出窗口。为此,我在控制器中创建了一个操作:
public async Task<bool> CheckSurfaceOnDB(#some inputs)
Surface surface = await ratesRepo.FindOneVolMatrix(#some inputs) as Surface;
return surface != null;
然后,在一个 .cshtml 文件中,我有一个脚本,我必须在其中访问 bool 输出,如何做到这一点?
另外,我想知道是否有更好的方法。
谢谢!
【问题讨论】:
这是你想要的吗? (以剃刀的模板语法为条件)docs.microsoft.com/en-us/aspnet/core/mvc/views/… 您的意思是您有一个剃须刀页面并且该应用会发送 http 请求来调用您的操作吗? 【参考方案1】:您没有提到您是否从 javascript 调用 CheckSurfaceOnDB
。根据动作的返回类型,它似乎是一个 ajax 动作。在这种情况下,将操作更改为:
public async Task<IActionResult> CheckSurfaceOnDB(#some inputs)
Surface surface = await ratesRepo.FindOneVolMatrix(#some inputs) as Surface;
bool found = (surface != null);
JsonResult result = this.Json(new status = found );
return result;
然后在 javascript (cshtml - Razor 视图) 中获取操作结果:
$.ajax(
type: 'POST',
url: '/Controller/CheckSurfaceOnDB',
data: model,
dataType: 'JSON',
async: true,
cache: false,
).done(function (response)
if (response != null)
if (response.status == true)
//Logic for True
else
//Logic for False
else
//Logic for False
).fail(function ()
//Logic for False
);
通过这种方式,您可以从操作中发送多个日期,然后在 javascript 中使用。例如,对于 True/False 数据,您还可以从操作中发送用户友好的消息。
注意:如果您的表面对象是一个列表,那么使用Null
值您还应该检查列表是否为空。您可以使用 LINQ 轻松做到这一点。例如:
if(surface != null && surface.Any())
【讨论】:
@vicvid431 希望这能回答你的问题以上是关于如何在javascript中从控制器(MVC)获取布尔值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MVC 应用程序中从 JavaScript 解析相对路径
无法在 ASP.NET MVC 5 中从视图到控制器获取 Select2 标记值
如何在非控制器类中从 Microsoft.AspNetCore.Identity 获取 UserID