1

私は次のようなコントローラーを持っています:

public class PersonController : Controller
{
    public ActionResult Result()
    {
        var s = new PersonResult();
        s = GetPerson(ViewBag.PersonInfo);
        return View(s);
    }
[...]
}

コントローラは、次のようなビューResultを呼び出します。

@model My.Class.Library.DTO.PersonController
@if (Model != null && Model.Persons.Count > 0)
{
     @Html.Partial("Persons", @Model.Persons)
}

したがって、モデルは多くの人を収容できます。Personsは、次のように独自のビューに送信されます(view Persons):

@using My.Class.Library.DTO

@model List<Person>

<section>
    @foreach (Person person in @Model)
    {
        @Html.Partial("Person", person)
    }
</section>

だから私は各人の人を私のビューの人に送ります。そして、そのビューでは、私は次のように各人を描いています:

@model Person
@if (Model.Fields.TryGetValue("description", out description)
{
    var descSplit = description.Split('#');
    foreach (string s in descSplit)
    {
        <div class="row-fluid">
            <div class="span2">Person</div>
            <div class="span10">@s</div>
        </div>
    }
}

しかし、それを行う代わりに、文字列sを独自のビューに渡したいと思います。このようなもの:

@model Person
@if (Model.Fields.TryGetValue("description", out description)
{
    var descSplit = description.Split('#');
    <section>
        @foreach (string s in descSplit)
        {
            @Html.Partial("Description", s)
        }
   </section>        
}

ただし、「s」は単なるプリミティブ型、つまり文字列です。それを自分のビュー「説明」に渡すにはどうすればよいですか?ビューの「説明」はどのように表示されますか?私はこのようなことを考えています:

@model string

    <div class="row-fluid">
        <div class="span2"><b>TEST</b></div>
        <div class="span10">@s</div>
    </div>

しかし、それは正しくありません...私のモデルはどうあるべきか、そして他のビューから送信している文字列をどのように提示できますか?

4

1 に答える 1

2

コードは正しく見えますが、部分的なビューでは、Modelプロパティを使用してみてください。

@model string

    <div class="row-fluid">
        <div class="span2"><b>TEST</b></div>
        <div class="span10">@Model</div>
    </div>

Views/PartialViews を厳密に型指定する場合、Modelプロパティを使用して、Model としてこの View/PartialView に渡した値を読み取る必要があります。

于 2013-03-22T11:11:32.873 に答える