【问题标题】:How to obtain the bool from the controller (MVC) in javascript?如何在javascript中从控制器(MVC)获取布尔值?
【发布时间】: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 输出,如何做到这一点?

另外,我想知道是否有更好的方法。

谢谢!

【问题讨论】:

标签: javascript c# asp.net-mvc asp.net-core


【解决方案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 希望这能回答你的问题
猜你喜欢
  • 2017-08-05
  • 1970-01-01
  • 2013-04-18
  • 2014-03-05
  • 2015-11-08
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多