1

我有一个看起来像这样的控制器:

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

控制器调用视图结果,如下所示:

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

所以模型可以容纳很多人。Persons 像这样被发送到它自己的视图(视图 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属性来读取您作为模型传递给此 View/PartialView 的值。

于 2013-03-22T11:11:32.873 回答