Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未筛选出ASP.NET MVC结果_C#_Asp.net Mvc - Fatal编程技术网

C# 未筛选出ASP.NET MVC结果

C# 未筛选出ASP.NET MVC结果,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个page index.cshtml,其中我使用iframes调用另一个page test.cshtml。页面test.cshtml包含用于过滤某些内容的代码。即使这些值在UI中被过滤掉,它也不会显示过滤后的值。你能帮我找出我遗漏了什么吗 下面是示例代码 index.cshtml <div class="wrapper"> <div class="h_iframe"> <img class="ratio" src="/i

我有一个page index.cshtml,其中我使用iframes调用另一个page test.cshtml。页面test.cshtml包含用于过滤某些内容的代码。即使这些值在UI中被过滤掉,它也不会显示过滤后的值。你能帮我找出我遗漏了什么吗

下面是示例代码

index.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>

test.cshtml

<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');
            }
        });
    });

@foreach(var catgoryabstractslists在ViewBag.abstracts中)
{
}
$('.select abstracts')。单击(函数(){
var data=$(this.attr('data-id');
$.ajax({
url:'@url.Action(“GetAllAbstracts”,“Home”),
数据:{abstractid:data},
成功:功能(结果){
},
错误:函数(){
警报(“错误”);
}
});
});
控制器

public ActionResult GetAllAbstracts(string categoryname)
        {
            List<Abstracts> abstracts = Helpers.SchedOrgHelpers.LoadAbstracts();            
            abstracts = abstracts.Where(x => x.Category == categoryname).ToList();

            //Populate the Viewbag using the helpers method            
            ViewBag.abstracts = abstracts;

            return View("....");
        }
public ActionResult GetAllAbstracts(字符串categoryname)
{
List abstracts=Helpers.SchedOrgHelpers.LoadAbstracts();
abstracts=abstracts.Where(x=>x.Category==categoryname.ToList();
//使用helpers方法填充Viewbag
ViewBag.abstracts=摘要;
返回视图(“…”);
}

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


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

是否在foreach上设置了调试器?为什么GetAllAbstracts返回一个视图?这是MVC,不是ASPX。页面没有状态-它只是简单的htmlShow us您的控制器操作顺便说一句。将模型传递给局部视图也将有助于保持视图的强类型,以防止其他错误。始终将模型传递给视图,而不是使用ViewBag。