将Razor与Javascript混合使用
本文关键字:混合 Javascript Razor | 更新日期: 2023-09-27 18:26:23
我试图在Javascript中调用C#代码,但它不起作用。这是我的代码:
@{
ViewBag.Title = "Db Maintenance";
}
<script type="text/javascript">
function beginSubmit() {
@{
Console.WriteLine("DELETING.....");
}
}
function cancelConfigForm() {
closeWindow("configDbMaitenanceWindow");
}
</script>
<div>
<button class="k-button k-button-icontext" type="submit" title="Delete Error Records" onclick="beginSubmit()">
<img src="@Url.Content("~/Content/Icons/metro-submit.png")" class="k-icon blank-background" alt="Submit Icon" />Delete Error Records
</button>
<button class="k-button k-button-icontext" type="reset" title="Close the window" onclick="cancelConfigForm()">
<img src="@Url.Content("~/Content/Icons/metro-cancel.png")" class="k-icon blank-background" alt="Cancel Icon" />Cancel
</button>
</div>
甚至没有调用"Console.WriteLine"。如何在单击按钮时调用C#代码?
编辑我试过
<text>
Console.WriteLine("DELETING.....");
</text>
但没用。
您正在混合两种完全不同的技术。
Razor渲染服务器端
所以你的功能只是
function beginSubmit() {
}
//notice empty line, cuz Console.WriteLine("DELETING....."); doesn't return anything
因为c#Console.WriteLine("DELETING.....");
不返回任何内容,所以它只记录DELETING剃刀引擎编译cshtml文件时。
JavaScript呈现客户端
因此,您要求浏览器为您做一些事情,调用alert、console.log(这与c#log不同)或浏览器允许您做的任何其他事情,而不是您的服务器。
并且您不能从javascript调用服务器端代码,除非您有(REST)API用于该调用。即使在这种情况下,您也需要ajax从客户端调用它