ASP.NET MVC - динамически устанавливаемые свойства UserControl отображаются неправильно - PullRequest
0 голосов
/ 25 октября 2010

Как следует из одного из моих предыдущих постов ( Основная страница ASP.NET MVC2 - серверный скрипт не рендерит, экранирование первой скобки ) У меня сейчас похожая проблема.

На этот раз это с попыткой динамически установить свойства UserControl.

** Для всех, кто знаком с N2CMS, это элемент управления AdvancedPager. *

Вот что я делаю:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.master" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewPage<Products>" %>
<%@ Register TagPrefix="AddOn" TagName="Pager" Src="~/Views/SharedParts/PagerControl.ascx" %>
<asp:Content ContentPlaceHolderID="Head" runat="server">
   // content for head section
</asp:Content>

<asp:Content ContentPlaceHolderID="MainContent" runat="server">
    <AddOn:Pager runat="server" ID="AdvPager" PerPage="<%= Model.ItemsPerPage %>" Total="<% Model.Count %>" />
</asp:Content>

Проблема заключается в значенииустанавливается в свойстве PerPage или Total.Я не могу отладить это, потому что у меня нет исходного кода, однако я считаю, что это та же проблема, с которой я сталкивался в предыдущем посте, потому что, если я заменяю динамический код ASP на жестко закодированные значения, это прекрасно работает.*

Есть идеи обойти?Я попытался поместить все это в String.Format, но он просто выводит <AddOn:Pager runat="server"... на страницу, на самом деле он неправильно отображает элемент управления.

1 Ответ

3 голосов
/ 25 октября 2010

UserControls с runat="server" запрещены в ASP.NET MVC.Они зависят от классического жизненного цикла WebForms, которого больше нет в MVC, даже не говоря о моделях ViewState и PostBack.

Если посмотреть на название этого элемента управления, он выглядит как пейджер.* * * * * * * * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * на * на * на все 100

...