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

本文关键字:参数 过滤器 MVC | 更新日期: 2023-09-27 18:00:31

我认为这是一个简单的问题,但不知怎么的,我无法解决它。我有一个列表<将由MVC控制器返回的SomeClass>。但是,我想过滤结果服务器端。所以假设类是这样的:

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

现在我想做一个GET请求,但结果需要在选项1上进行筛选。这样我就可以正确地查询数据库了。因此,我尝试将option1设置为"something"的类的一个实例进行jsonconvert.serialize,但如何将其传递到我的MVC GET方法?使用httpclient时没有内容,使用httpWebRequest并将其写入流中时,我会出现错误"不能使用此谓词发送任何内容",其中谓词设置为GET。

我想我错过了一件基本的事情。有人能给我指正确的方向吗?

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

如果您想将操作保持为GET,则需要使用正确的querystring参数调用该操作,即/ActionName?option1=somevalue&option2=其他值

以及你的行动:

[HttpGet]public ActionResult ActionName(SomeClass SomeClass)

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

这很简单,您可以使用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);
}