RenderPartial Problem (при отправке данных на главную страницу) - PullRequest
2 голосов
/ 17 марта 2011

Я пытаюсь отправить некоторые данные на главную страницу. Я использую Razor в качестве движка View и AutoMapper для сопоставления моделей Domain и View. Ниже мой код:

//the partial view action method:
public ActionResult RenderCategories()
{
    IEnumerable<TopLevelCategory> categories = _categoryService.GetTopLevelCategories();
    var viewModel = new MasterPageViewModel
                    {
                        Categories =
                            Mapper.Map
                            <IEnumerable<TopLevelCategory>, IEnumerable<ParentCategory>>(categories)
                    };

    return View(viewModel);
}

//the partial view file: (this is just a test for now)
@model Sharwe.MVC.ViewModels.MasterPageViewModel

@foreach (var item in Model.Categories) {
      @item.Name
}

public class MasterPageViewModel
{
    public IEnumerable<ParentCategory> Categories { get; set; }
}

Я вызываю частичное представление, используя @ Html.RenderPartial ("RenderCategories") из моего файла _Layout.cshtml. Но я продолжаю получать следующую ошибку:

Сообщение об ошибке компилятора: CS1502: The лучший перегруженный метод соответствует 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' имеет несколько неверных аргументов

Что происходит?

1 Ответ

6 голосов
/ 17 марта 2011

Метод расширения RenderPartial записывает данные напрямую в выходной поток и не имеет типа возврата (void).Итак, вот правильный синтаксис для его вызова:

@{Html.RenderPartial("RenderCategories");}

или, если вы предпочитаете, вы можете использовать метод расширения Partial:

@Html.Partial("RenderCategories")

Сравните те сих эквиваленты в движке представления WebForms:

<% Html.RenderPartial("RenderCategories"); %>
<%= Html.Partial("RenderCategories") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...