我正在使用Razor页面构建一个Asp.NetCore应用程序。我正在尝试创建一个泛型以在页面中构造Url操作。
理想情况下,我想创建一个可以在多个页面上共享的javascript函数。
考虑以下Javascript函数:
Function Foo( actionName, entityType) {
// This is what I'd like the result to be....
// var urlAction = "'@Url.Action("DeleteCompany","Company")'";
var urlAction = "'@Url.Action(""" + actionName + entityName + """,""" + entityName """)'""";
var result = DevExpress.ui.dialog.confirm("message", "title");
result.done(function (dialogResult) {
$.ajax({
url: urlAction,
data: { companyId: entityId },
type:"Post",
success: function () {
}
});
});
我希望能够动态构建我的urlAction字符串,这样我就可以通用它在我的应用程序中的剃须刀页面上。
有可能做到吗?如果是,我如何正确地构造urlAction字符串?
您想要创建可以在多个页面上共享的js函数。为了实现这个目标,您需要在外部js文件中创建这个函数。此外,C#代码无法在外部js文件中使用。您可以设置隐藏输入并将@Url.Action()
设置为值。
更改您的代码如下:
YourJs.js:
function Foo() {
var urlAction = $("#myUrl").val();
console.log(urlAction);
}
视图:
<input id="myUrl" hidden value="@Url.Action("Privacy","Home")"/>
<input type="button" value="Create" onclick="Foo()" />
@section Scripts
{
<script src="~/js/YourJs.js"></script>
}