ASP.NET MVC结果未被过滤掉

时间:2016-02-09 15:54:43

标签: c# asp.net-mvc

我有一个页面index.cshtml,我用iframe调用另一个页面test.cshtml。页面test.cshtml包含过滤掉一些东西的代码。即使这些值在UI中被过滤掉,也没有显示过滤后的值。能否帮助我找出我所缺少的东西。

以下是示例代码

index.cshtml

&& echo 1

test.cshtml

<div class="wrapper">
        <div class="h_iframe">
            <img class="ratio" src="/images/ratio16x9.png" />
                <iframe src="@Url.Action("test","Home")" frameborder="0"></iframe>
        </div>
    </div>

控制器

<div class="container">
    <div id="onpageloadvalues">

 @foreach (var catgoryabstractslists in ViewBag.abstracts)
        {
            <div><a href="#" data-id='@catgoryabstractslists.AbstractID' id='CategorySelect_@(catgoryabstractslists.AbstractID)' class="select-abstracts">Abstract #@catgoryabstractslists.AbstractID - @catgoryabstractslists.AbstractTitle</a></div>
           }

</div>

</div>

$('.select-abstracts').click(function () {
        var data = $(this).attr('data-id');
        $.ajax({
            url: '@Url.Action("GetAllAbstracts", "Home")',
            data: { abstractid: data },
            success: function (result) {
            },
            error: function () {
                alert('Error');
            }
        });
    });

1 个答案:

答案 0 :(得分:2)

您正在通过ajax调用服务器,并且您正在将过滤后的数据设置为ViewBag,但您不是从服务器再次读取该数据(由于您的调用是通过ajax,因此您的页面不会再次在服务器上执行)。

你应该做的是,而不是将其设置为ViewBag,你应该将它作为JSON数据发送(并在你的ajax成功方法中,解析json数组并构建html标记并追加/替换特定的DOM元素)或返回局部视图,它使用此数据呈现您需要的任何标记,并替换您想要的现有DOM元素。

相关问题