Я не знаю Django, но из вашего описания похоже, что вы говорите о частичных взглядах. Таким образом, вы можете определить частичное (~/Views/Home/Foo.ascx
):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<div>some contents</div>
и затем в вашем главном представлении включите его:
<%= Html.Partial("Foo") %>
UPDATE:
Теперь, когда вы показали свой код, кажется, что вы используете метод RenderPartial
. Этот метод ничего не возвращает. Он пишет прямо на выход. Вы используете это неправильно. Его следует использовать так:
<% Html.RenderPartial(ViewData["pd"].ToString()); %>
или вы также можете использовать Частичный помощник:
<%= Html.Partial(ViewData["pd"].ToString()) %>
Теперь, что касается передачи информации в этот фрагмент, я очень и очень настоятельно рекомендую вам избавиться от любых ViewData и использовать строго типизированные представления и модели представлений. Так, например, вы должны иметь строго типизированный основной вид этой модели:
public class MyViewModel
{
public string Foo { get; set; }
public SomeOtherViewModel Bar { get; set; }
}
и тогда вы сможете сделать это:
<%= Html.Partial(Model.Foo, Model.Bar) %>
, а затем строго наберите частичное значение SomeOtherViewModel
:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SomeOtherViewModel>" %>
<div><%: Model.SomePropertyOfBar %></div>
Или, что еще лучше, используйте шаблонные помощники Html.DisplayFor и Html.EditorFor . Это лучший способ включить частичные компоненты в приложение ASP.NET MVC.