【问题标题】:calling function on razor view在剃刀视图上调用函数
【发布时间】:2019-07-19 10:02:04
【问题描述】:

我在这里尝试做一些非常简单的事情。对 MVC 和 Razor 的新用户表示歉意 这是 Razor 视图页面 (.cshtml)。
为什么单击按钮时 ShowMessage 函数没有触发

理想情况下,函数的代码是否也应该放在此处或 cshtml.cs 文件中? 我设法在 cshtml.cs 文件中调用了一个方法,但我无法显示警告框来通知最终用户成功或失败,所以现在我正在尝试使用 ViewBag 以这种方式。

    @page
    @model IndexModel
    @{
        ViewData["Title"] = "Air Menu page";

        @functions
        {
          public void ShowMessage()
                {        
                    string output = "Hello";
                    ViewBag.Message(output);                  
                }
    }
}

<form asp-page-handler="showmessage" method="post">
        <button class="btn btn-default">Show Message</button>
</form>

【问题讨论】:

  • 嗨,为什么不用Action("method", "controller", "params") 来称呼它?
  • 控制器在 VS2017 的 razor .netcore 项目中在哪里我看不到?
  • 你使用的是Core还是MVC
  • 带有剃须刀页面的核心
  • 看,你不应该在 IndexModel 中使用Async Task&lt;IActionResult&gt; OnPostshowmessageAsync() 方法吗?而且我认为您的按钮应该触发提交操作。

标签: razor model-view-controller razor-pages


【解决方案1】:

答案是使用 ViewData 或可能是 ViewBag

public void  OnGetStartKodi()
            {

                int exitcode = 0;
                if (exitcode == 1)
                {
                    ViewData["output"] = exitcode;
                      return Page();                
            }
                else ViewData["output"] = "failed try again exitcode:" + exitcode;               
                  return Page();


            }

与 使用从 Razor 页面获取

 @if (ViewData.ContainsKey("output"))
    {

        <script>alert("@ViewData["output"]")</script>

    }

【讨论】:

    猜你喜欢
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多