0

を含むサプライヤー エンティティがあります。

ID - int
Status - string
Name - string
CreateDate- datetime

上記の Entity.as のデータ注釈を作成するために部分クラス メソッドを使用しています。

namespace TemplateEx.Models
{
    [MetadataType(typeof(SupplierMetadata))]
    public partial class Supplier
    {
        // Note this class has nothing in it.  It's just here to add the class-level attribute.
    }

    public class SupplierMetadata
    {
        // Name the field the same as EF named the property - "FirstName" for example.
        // Also, the type needs to match.  Basically just redeclare it.
        // Note that this is a field.  I think it can be a property too, but fields definitely should work.

        [Required]
        [Display(Name = "Supplier Name")]
        public string Name;
    }
}

以下のようにコントローラーアクションを定義しました

 public ViewResult Details(int id)
    {
        Supplier supplier = db.Suppliers1.Single(s => s.ID == id);
        return View(supplier);
    }

このアクションのビューを作成し、サプライヤー エンティティの詳細スキャフォールディングを選択すると、ビューとして次のようになります。

@model TemplateEx.Models.Supplier

@{
    ViewBag.Title = "Details";
}

<h2>Details</h2>

<fieldset>
    <legend>Supplier</legend>

    <div class="display-label">CreateDate</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.CreateDate)
    </div>

    <div class="display-label">Status</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Status)
    </div>

    <div class="display-label">Name</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Name)
    </div>
</fieldset>
<p>
    @Html.ActionLink("Edit", "Edit", new { id=Model.ID }) |
    @Html.ActionLink("Back to List", "Index")
</p>

model.Name に "Supplier Name" ではなく "Name" ラベルが付いていることに注意してください。何が間違っていますか?

4

1 に答える 1

3

交換

<div class="display-label">Name</div>

<div class="display-label">@Html.LabelFor(model => model.Name)</div>

編集 :

2 番目の質問については、ここを参照 してください。スキャフォールディングの自動生成コードを適用して、asp.net mvc 3 の同じ行に Label と EditorFor テキスト フィールドを表示するにはどうすればよいですか(特に最後の回答) 。

于 2012-06-14T16:44:40.063 に答える