0

私のMVC3プロジェクトには、このようなモデルがあります

Public Class Description

    Public Property DescriptionId As Integer

    <DisplayName("Product Title"), Required(ErrorMessage:="A Product Title is required"), StringLength(160)>
    Public Property ProductTitle As String

    <DisplayName("Product Description"), DataType(DataType.MultilineText)>
    Public Property ProductDescription As String

End Class

次のような視点から

@ModelType MyProject.Description

@Code
    ViewData("Title") = "Create"
End Code

<h2>Create</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@Using Html.BeginForm()
    @Html.ValidationSummary(True)
    @<fieldset>
        <legend>Description</legend>

        <div class="editor-label">
            @Html.LabelFor(Function(model) model.ProductTitle)
        </div>
        <div class="editor-field">
            @Html.EditorFor(Function(model) model.ProductTitle)
            @Html.ValidationMessageFor(Function(model) model.ProductTitle)
        </div>

        <div class="editor-label">
            @Html.LabelFor(Function(model) model.ProductDescription)
        </div>
        <div class="editor-field">
            @Html.EditorFor(Function(model) model.ProductDescription)
            @Html.ValidationMessageFor(Function(model) model.ProductDescription)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
End Using

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

一度に1つの新しい説明を作成できますが、一度にさらに多くの説明(たとえば、5つの説明)を挿入する方法と、コントローラーアクションでそれらを取得する方法はありますか?

4

1 に答える 1

1

VB.net の構文がよくわからないので、c# バージョンを提供します。

  1. 次のように、ビューモデルでコレクションを使用しますList<String> ProductDescription {get;set;}

  2. ビューでは、説明を手動でレンダリングし、エディターを回避します

    for (var i = 0; i < Model.ProductDescription.Count;i++ ) { @Html.TextBox("ProductDescription[" + i + "]") }

  3. ポストバックするときは、アクションの引数として Description を使用します。

于 2012-11-09T19:03:01.350 に答える