Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Asp.net mvc 在asp.net mvc actionlink中传递嵌套属性_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 在asp.net mvc actionlink中传递嵌套属性

Asp.net mvc 在asp.net mvc actionlink中传递嵌套属性,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我的操作接受的模型如下所示: public class ClassListVM { public ClassListVM() { Filter = new ClassFilterModel(); } public ClassFilterModel Filter { get; set; } public PagedList<Class> Classes { get; set; } } public class ClassFil

我的操作接受的模型如下所示:

public class ClassListVM
{
    public ClassListVM()
    {
        Filter = new ClassFilterModel();
    }

    public ClassFilterModel Filter { get; set; }
    public PagedList<Class> Classes { get; set; }
}

public class ClassFilterModel
{
    public int? TermId { get; set; }
    public int? SubFormId { get; set; }
    public int? FormId { get; set; }
}

public ActionResult Index(ClassListVM model)
{
    model.Classes = classService.GetClasses(model.Filter);
    return View(model);
}

正如您所看到的,
过滤器
不能在这里使用。

理论上,您可以这样构建它:

<a href="@Url.Action("Details", "Classes")?Filter.TermId=@Model.TermId&amp;Filter.SubFormId=@subForm.SubFormId">go</a>


诸如此类;本质上,将查询字符串嵌入到客户机标记中,并只插入参数。

我最终这样做了,我希望有更好的方法来实现这一点,也许可以使用属性字典,而不是匿名类。匿名类不能以这种方式支持点表示法(如Filter.TermId)。字典可以使用新字典{“Filter.TermId”,Model.TermId}。你可以试试。
<a href="@Url.Action("Details", "Classes")?Filter.TermId=@Model.TermId&amp;Filter.SubFormId=@subForm.SubFormId">go</a>