【问题标题】:ASP.NET MVC4 Building Custom ControlsASP.NET MVC4 构建自定义控件
【发布时间】:2013-10-17 09:25:48
【问题描述】:

我想重用在我们项目的各个模块中出现的组合框控件。 包含 Select、Yes 和 no 项目的组合框。

@Html.DropDownList("SampleList", new[] 
{
new SelectListItem() {Text = "Yes",Value = "1" },
new SelectListItem() {Text = "No",Value = "2" }
},"Select")

什么方法会更好?

要使用局部视图或用户控件?

在某些形式中,它们也会重复多次。

这是一个问卷页面。

如果我是 MVC 新手,请告诉我是否有其他可用选项。提前致谢。

【问题讨论】:

  • 转到局部视图,我们制作这些类型的东西并将其放在共享文件夹内名为编辑器模板的文件夹中。也从未听说过 mvc 中的用户控件之类的东西
  • 嗨,雷克斯。但是我们看到一个选项,在添加一个新项目 MVC4 视图用户控件 (ASPX) 时,这会做什么?

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


【解决方案1】:

要使用局部视图或用户控件?

MVC 没有任何“用户控件”的概念,部分视图几乎是等价的,因此它们将是最合乎逻辑的选择。


如果要在 4 个不同的地方使用它,那么我将能够使用 @Html.Partial 进行调用,但我如何区分这四个控件?

只需让您的部分视图包含 ID 字段,例如

@model string

@Html.DropDownList(Model, new[] 
{
    new SelectListItem() {Text = "Yes",Value = "1" },
    new SelectListItem() {Text = "No",Value = "2" }
}, new { id = "@Model" })

然后你可以这样称呼

@Html.Partial("SelectList", "ddlOne");
@Html.Partial("SelectList", "ddlTwo");
@Html.Partial("SelectList", "ddlThree");

【讨论】:

  • 谢谢詹姆斯。如果要在 4 个不同的地方使用它,那么我将能够使用 @Html.Partial 进行调用,但我如何区分这四个控件?我的意思通常是当我们创建任何控件时,我们会提供一个我们将对其进行验证的 ID。在这种情况下如何处理?
  • 谢谢詹姆斯。让我尝试包括验证在内的那些。 :)
  • ID 不被 jQuery 访问。这是您提供的示例 sn-p。 $('#cmb1').change(function () { alert('First Alert Message'); }); cmb1 未检测到为组合框提供的 ID。此更改函数永远不会触发。
  • @GauthamNayak 这并没有多大帮助...... HTML 是什么样的?
  • 詹姆斯。仅举一个带有问卷调查表的示例,你是吗?是/否 你是吗?是/否等。我们将有大约 15 个问题,所以我试图创建一个局部视图,以便我们可以重用它而不是每次都创建它。
猜你喜欢
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 2010-09-23
相关资源
最近更新 更多