如何使用Jquery .load()重新加载部分视图?

时间:2015-06-22 00:55:29

标签: javascript c# jquery asp.net asp.net-mvc

我在页面上有一个部分视图,我想重新加载。它位于“附件”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]。

1 个答案:

答案 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)

或者您可以尝试其他一些变体,只需注意在您的标记中呈现您的网址