0

プロ Asp.Net MVC 4 (pg 535):

文字列引数は、ビュー データ、ViewBag、およびビュー モデルを検索して、入力要素の基本として使用できる対応するデータ項目を見つけるために使用されます。たとえば、 を呼び出す @Html.TextBox("DataValue")と、MVC フレームワークはキー DataValue に対応するデータ項目を見つけようとします。次の場所がチェックされます。 • ViewBag.DataValue • @Model.DataValue

Book は、単一の文字列引数を取る Html.TextBox のオーバーロードが、ビュー モデルViewDataビュー モデルの両方をチェックして表示用の値を取得すると述べています。しかし、少し実験した後ViewData、値のみをチェックし、ビューモデルもチェックしないようです。

したがって、属性から生成された出力ではHtml.TextBoxvalueの文字列に設定されます。

public class Person 
{
    public string FirstName = "Leila";
}

*.cshtml:

@model HelperMethods.Models.Person
                  ...   
@Html.TextBox("FirstName")

出力:

                  ...
<input id="FirstName" name="FirstName" type="text" value="" />

それで、本は間違っていて、TextBox(HtmlHelper, String)チェックのみですか、それともビューモデルViewDataもチェックしますか?

アップデート:

public class Person 
{
    public string FirstName = "Leila";
}


public class HomeController : Controller
{

    public ActionResult Index()
    {
        return View((object)new Person());
    }
}

インデックス.cshtml:

@model Mvc4.Controllers.Person

@{
    Layout = null;
}

<!DOCTYPE html>

    <html>
     <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
     </head>
     <body>
        @Html.TextBox("FirstName")
     </body>
    </html>

とても有難い

4

1 に答える 1