如何在MVC中使用参数作为过滤器?

时间:2015-06-30 21:36:02

标签: c# asp.net-mvc asp.net-mvc-4

我认为这是一个简单的问题,但我无法解决这个问题。我有一个List< SomeClass>这将由MVC控制器返回。但是,我想过滤结果服务器端。所以假设课程如下:

public SomeClass()
{
    string option1;
    string option2;
    int indexing;
}

现在我想做一个GET请求,但结果需要在option1上过滤。所以我可以正确地查询数据库。所以我尝试jsonconvert.serialize类的一个实例,其中option1设置为' something',但是我怎样才能将它传递给我的MVC GET方法?使用httpclient没有内容,使用httpWebRequest并将其写入流中我有错误'没有内容可以使用此动词发送,其中动词设置为GET。

我想我在这里错过了一个基本的东西。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

这很简单,你可以使用Json Result: https://msdn.microsoft.com/en-us/library/system.web.mvc.jsonresult(v=vs.118).aspx

[HttpGet]
public ActionResult GetListObjects(string filter)
{
    //getdata items
    var objects =
    from item in items
    where (string)item.option1 == filter
    select item;

    return Json(objects, JsonRequestBehavior.AllowGet);
}

答案 1 :(得分:0)

如果你想把你的行动保持为GET,你需要使用正确的查询字符串参数调用该操作,即/ ActionName?opt​​ion1 = somevalue& option2 = othervalue

和你的行动:

[HTTPGET] public ActionResult ActionName(SomeClass someclass)

或发布json选项并将你的HttpGetverb发送到HttpPost