什么值[“PromoCode”]参考

本文关键字:参考 PromoCode 什么 | 更新日期: 2023-09-27 18:25:40

我正在阅读本教程,并对他用本语句的第一部分重新定义的内容感到困惑,起初我认为这是promo代码表中的值,但没有可以用来构建该表的模型。教程链接如下:http://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-9

string.Equals(values["PromoCode"], PromoCode,
        StringComparison.OrdinalIgnoreCase) == false

什么值[“PromoCode”]参考

PromoCode是一个常数

values["PromoCode"]是表单中发布的值之一:请参阅视图

您可以通过其键访问FormCollectionvaluesFormCollection,它存储表单中的所有输入,并继承自NameValueCollection):键是输入的名称。

<div class="editor-field"> @Html.TextBox("PromoCode") // it's not a TextBoxFor </div>

这将产生类似的东西

<input type="text" name="PromoCode" id="PromoCode" />

事实上,它与模型中的任何内容都没有关联。

查看方法签名:

public ActionResult AddressAndPayment(FormCollection values)

因此,它是所有已发布值的集合。

查看方法的签名:

public ActionResult AddressAndPayment(FormCollection values) // <-- here
{
    // ...
    if (string.Equals(values["PromoCode"], PromoCode,
        StringComparison.OrdinalIgnoreCase) == false)
    {
        // ...
    }
    // ...
}

values的类型是FormCollection,这意味着从浏览器发布的HTML <form>中的数据收集,MVC模型绑定将表单数据收集到FormCollection实例(此处为values)中,因此您可以通过类似values["PromoCode"]的代码来获取表单数据,这与经典asp/asp.net中的Request.Form["PromoCode"]相同。