我试图在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>
&#34; Console.WriteLine&#34;甚至没有被召唤。如何在按钮单击时调用C#代码?
EDIT 我试过了
<text>
Console.WriteLine("DELETING.....");
</text>
它没有用。
答案 0 :(得分:1)
您正在混合两种完全不同的技术。
所以你的功能只是
function beginSubmit() {
}
//notice empty line, cuz Console.WriteLine("DELETING....."); doesn't return anything
因为c#Console.WriteLine("DELETING.....");
没有返回任何内容,所以当razor引擎编译cshtml文件时,它只会记录 DELETING ..... 。
所以你要求浏览器为你做一些事情,调用alert,console.log(这与c#log不同),或浏览器允许你做的任何其他事情,而不是你的服务器。
除非你有针对该调用的(REST)API,否则你不能从javascript调用服务器端代码。即使在这种情况下,您也需要ajax来从客户端调用它