我在页面上有一个部分视图,我想重新加载。它位于“附件”div。
我现在正在做的事情是使用以下命令:
$('#attachments').load('@Url.Action("Attachments" "Transactions",new {id=1297})')
以上内容会在控制台中出现错误:
GET http://localhost:49793/Transactions/@Url.Action(%22Attachments%22 404 (Not Found)
我错过了什么?为什么URL.Action()没有正确呈现?
事务控制器中的操作附件是[ChildActionOnly]。
答案 0 :(得分:0)
您的操作网址来自您的后端。按照您的方式进行操作,您只需发送一个包含后端操作的字符串,而不是网址。
在html中使用数据属性的一种可能方式如下:
<div id="attachments" data-url="@Url.Action("Attachments" "Transactions",new {id=1297})"></div>
并在您的javascript中:
var $attachments = $('#attachments'),
url = $attachments.data('url');
$attachments.load(url)
甚至是隐藏的输入:
<input type="hidden" id="attachmentsUrl" value="@Url.Action("Attachments" "Transactions",new {id=1297})" />
var url = $('#attachmentsUrl').val();
$('#attachments').load(url)
或者您可以尝试其他一些变体,只需注意在您的标记中呈现您的网址