如何将Html.Action附加到jquery

时间:2012-11-08 12:33:04

标签: jquery asp.net-mvc

可以添加

$("#report").html('Html.Action("ReportPage", new { id = Model.GoalId })')

这里报告是div的id,我想放置操作的结果ReportPage id是传递给ReportPage actionresult的参数

2 个答案:

答案 0 :(得分:5)

您需要使用服务器标签才能实现此目的。所以:

$("#report").html('@Html.Action("ReportPage", new { id = Model.GoalId })')

$("#report").html('<%= Html.Action("ReportPage", new { id = Model.GoalId }) %>')

如果你的意思是 行动报告页面 的结果。

但是,如果通过 操作ReportPage的结果 ,则表示您的MVC操作重新生成的实际结果(即:视图,json ..),您必须使用类似的内容这个

$.get('@Html.Action("ReportPage", new { id = Model.GoalId })', function(data) {
  $("#report").html(data);
});

希望这有帮助

PS:有关jQuery.get()

的更多详细信息,请参阅http://api.jquery.com/jQuery.get/

答案 1 :(得分:0)

这样,主页加载后,你的动作html将由ajax加载。

CSS

.support {display: hidden;}

HTML

<div class="support">
    <div class="report-page">
        <a href="Url.Action("ReportPage", new { id = Model.GoalId })" />
    </div>
</div>

JS

var url = $('.support .report-page a').prop('href');
$.get(url, null, function(html){
    $('#report').html(html);
}, html);

或者,如果您只想要一个http请求,则可以执行以下操作:

CSS

.support {display: hidden;}

HTML

<div class="support">
    <div class="report-page">
        @Html.Action("ReportPage", new { id = Model.GoalId })
    </div>
</div>

JS

var html = $('.support .report-page').html();
$('#report').html(html);