如何在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->重定向到"谢谢"
在控制器的操作中:
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>
}