私は次のようなコントローラーを持っています:
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>
しかし、それは正しくありません...私のモデルはどうあるべきか、そして他のビューから送信している文字列をどのように提示できますか?