如何将一些参数传递给MVC用户控件,这些参数不在ViewData中

5

我想传递一些参数给我的MVC用户控件,如ShowTitle(bool)和ViewData.Model.Row。我该如何定义我的用户控件并将它们传递给它?

谢谢
2个回答

6
你可以使用RenderAction HtmlHelper,该帮助程序位于MVC futures dll中,可在codeplex上找到。在你的主页面中...
你需要在控制器上创建一个带有参数的操作方法。然后为用户控件创建一个ViewData。用户控件作为视图返回。
return View("usercontrolname", model);

.ascx文件仅为用户控件使用模型。渲染结果的HTML被嵌入到调用页面中。

谢谢你,马修。我在哪里可以找到更多关于这个解决方案或更完整的资源文档? - Atta

1

你可以将你的控件定义为

public partial class MyUserControl : System.Web.Mvc.ViewUserControl<MyUserControlViewData> {
}

public class MyUserControlViewData {
    public IList<MyData> MyData { get; set; }
    public string SomethingElse { get; set; }
}

在此之后,您可以在控制器中创建MyUserControlViewData类的实例,填充数据并将其传递给视图。这是您正在寻找的吗?

谢谢。那是唯一的方法吗?它看起来很难以理解。 - Atta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接