如何在MVC控制器C#中执行jQuery

本文关键字:执行 jQuery 控制器 MVC | 更新日期: 2023-09-27 18:28:21

是否可以从MVC C#控制器运行jQuery?

if (ModelState.IsValid){
 //lots of C# asp.net code here
 jqueryFunctionName();
}

重要的是,在jQuery运行之前有一个检查

也许我可以直接从jQuery本身完成,但我不确定如何检查它?

这个想法是Form->Submit->SOMETHING检查是否有效->如果是,则等待图形->2秒pauze->重定向到"谢谢"

如何在MVC控制器C#中执行jQuery

在控制器的操作中:

var vm = new YourViewModelTypeWithPropertyIsValid();
vm.IsValid = ModelState.IsValid;
return View(vm);

在您看来:

@model YourViewModelTypeWithPropertyIsValid
<script type="text/javascript">
    var isModelValid = @Model.IsValid ? 'true' : 'false';
    $( document ).ready(function() {
        // Any JS code here
        // ...
        if (isModelValid) {
            setTimeout(
                function () {
                    location.assign('/redirect_path_after_2s_delay');
                },
                2000);
            );
        }
    });
<script>

我更喜欢打字视图。

如果使用非类型化视图,请使用下面的代码。

在控制器的操作中:

ViewData["IsModelValid"] = ModelState.IsValid ? "true" : "false";
return View();

在您看来:

<script type="text/javascript">
    var isModelValid = @ViewData["IsModelValid"];
    $( document ).ready(function() {
        // Any JS code here
        // ...
        if (isModelValid) {
            // See the code above.
        }
    });
<script>

如果代码在视图中运行,那么您可以尝试这样的操作。是一个特殊的asp标记。如果确实应该在控制器中运行,则不可能在那里运行JS代码。

if (ModelState.IsValid){
 //lots of C# asp.net code here
 <text>
  <script>
  jqueryFunctionName();
  </script>
 </text>
}