如何在Razor页面上动态构建ajax url操作字符串



我正在使用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>
}

最新更新