在MVC5 Razor视图中调用JavaScript函数
我在另一篇文章中看到,您可以在razor代码中调用JavaScript函数,如下所示:在MVC5 Razor视图中调用JavaScript函数,javascript,jquery,razor,asp.net-mvc-5,Javascript,Jquery,Razor,Asp.net Mvc 5,我在另一篇文章中看到,您可以在razor代码中调用JavaScript函数,如下所示: @:FunctionName() 但对我来说,这只输出实际的单词FunctionName 以下是我的看法: @model PriceCompare.Models.QuoteModel @{ ViewBag.Title = "Quote"; } <h2>Quote</h2> @if (@Model.clarify == true) { // do drop dow
@:FunctionName()
但对我来说,这只输出实际的单词FunctionName
以下是我的看法:
@model PriceCompare.Models.QuoteModel
@{
ViewBag.Title = "Quote";
}
<h2>Quote</h2>
@if (@Model.clarify == true)
{
// do drop down loic
@:ShowClarify();
}
else
{
// fill quote
@:ShowQuote();
}
<div class="clarify">
You can see the clarify div
</div>
<div class="quote">
You can see the quote div
</div>
@section head {
<script type="text/javascript">
$(document).ready(
function ShowQuote() {
$(".quote").show();
},
function ShowClarify() {
$(".clarify").show();
}
);
</script>
}
是因为我把它嵌套在了一个“@if”中吗?无论如何,围绕这一点?您需要将javascript放在一个标记中,并且需要调用其范围内的函数:
<script type="text/javascript">
$(document).ready(
function ShowQuote() {
$(".quote").show();
},
function ShowClarify() {
$(".clarify").show();
}
@if (@Model.clarify == true)
{
// do drop down loic
ShowClarify();
}
else
{
// fill quote
ShowQuote();
}
);
</script>
如果要向JavaScript函数传递任何参数,则必须用引号将其括起来
foreach (var item in files)
{
<script type="text/javascript">
Attachment(**'@item.FileName'**, **'@item.Size'**);
</script>
}
谢谢语法是一种东西吗??它被终止了吗?@:语法只是告诉Razor将下面的内容视为纯文本。在代码块的上下文中,这对于防止Razor试图在C/VB上下文而不是JavaScript上下文中运行FunctionName方法是必要的,因为它实际上存在于JavaScript上下文中。@Guerrilla我没有把它放在Visual Studio中,因此,在javascript函数调用之前,您可能仍然需要@:在前面。我相信它将需要@:在前面,从我刚才尝试的内容来看,所以@:showClearify;及:ShowQuote ;;您应该使用代码格式选项选择代码,Ctrl-k以确保您的代码以您希望的方式显示在您的答案中。另外,最好在你的例子中使用问题中的一些东西,使你的意思更清楚。