这个MVC功能叫什么?

时间:2015-12-14 14:49:55

标签: c# asp.net-mvc

我回想一下MVC中的一个功能,它允许您影响源对象,以便为给定方法派生参数值。

public ActionResult Foo([SomethingHere] int parameter)
{
    // do something with parameter

    return View();
}

括号内的" [SomethingHere]"将包含一个名为"参数"然后MVC会尝试从中获取一个int。我忘记了这个功能被称为什么,我的谷歌显然很弱。这叫什么?

2 个答案:

答案 0 :(得分:2)

[Thing]称为属性。属性本身没有任何作用,它们只提供元数据。

使用属性,您可以指示MVC处理与其默认值不同的某些内容。

在这种情况下,您将覆盖默认的模型活页夹行为。

参见"文档"以下内容:ASP.NET MVC Preview 5 and Form Posting Scenarios。这里参数属性[Bind]在其他方面进行了解释。

MSDN的信息更少:BindAttributeModelBinderAttribute

答案 1 :(得分:0)

您在谈论自定义模型绑定器吗?

public class HomeCustomDataBinder : DefaultModelBinder
{
    public override object BindModel(
        ControllerContext controllerContext,
        ModelBindingContext bindingContext)
    {
        // Various things.
    }
}

public ActionResult Index(
    [ModelBinder(typeof(HomeCustomBinder))] HomePageModels home)
{
    // Various things.
}

有关扩展示例,请参阅ASP.NET MVC Custom Model Binder