我一直在靠墙撞墙几个小时,我需要帮助......
我希望能够在外部文件而不是内联中引用我的JS @section脚本 用于关联的cshtml文件。
我尝试过以下两种方法,但都没有。
@Html.RazorJSInclude("~/Scripts/Categories/Create.js");
$.getScript("~/Scripts/Categories/Create.js", function ()
{
contentCategoriesCreate();
});
RazorJSInclude包不能像宣传的那样工作。在调试这个js文件时,我没有看到任何地方。
无论我尝试使用jQuery getScript方法,我都无法解决我指向的网址。
请注意,对于后者,我确实在Layout页面和Bundle.config文件中包含了一个包。
如果我将脚本包含在内联中,一切正常,但我想将内联JS与HTML分离。
我能做到这一点最简单的方法是什么?
我按照建议添加了Url.Content,我忘记提及我已经尝试过了。它不起作用(见截图)。
我也尝试过Razor语法:@ Url.Content也没用。见下面的截图。
我不知道如此简单的事情应该怎么做,结果是一场噩梦......
任何其他建议都会有所帮助......
最后,我所做的是将脚本包含在我的捆绑中。但是,这仍然没有奏效。这次,脚本加载没有错误,但是当我点击“创建”按钮时,点击功能不会触发。
以下是我的BundleConfig.js文件中的相关代码:
bundles.Add(new ScriptBundle("~/bundles/jsViews").Include(
"~/Scripts/Categories/Create.js",
"~/Scripts/AntiForgeryToken.js"));
以下是我的_Layout.js文件中的相关代码:
@Scripts.Render("~/bundles/jsViews")
以下是我的Create.cshtml文件中的相关代码:
@section Scripts {
<script>
$(document).ready(function ()
{
if (typeof contentCreateCategory == "function")
contentCreateCategory();
});
</script>
}
以下是我的外部JS文件中的相关代码:
function contentCreateCategory()
{
function contentCategoriesCreate()
{
$('#btnCategoryCreate').click(function (e)
{
var form = $('#form1');
if (form.valid())
{
createCategory();
}
return false;
});
}
}
function createCategory()
{
var category_Input = {
CategoryDescription: $('#CategoryDescription').val()
};
var Url = $("#url").val();
$.ajax({
url: Url,
data: AddAntiCSRFToken(JSON.stringify(category_Input)),
dataType: "html",
type: "POST",
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
async: false,
success: function (data, status)
{
// Record added
},
error: function (data, status, xhr)
{
alert(status + '\n' + xhr + '\n' + data);
}
});
};
最后,这里是证明JS正在加载的屏幕截图,但是当我点击“创建”按钮时没有任何反应。再次注意,当我在Create.cshtml文件中内嵌脚本时,一切正常。我不能做比我做的更多的事情。我给了代码&amp;截图。我希望某人可以让我知道我需要做些什么来让这个工作......