PartialViews се забъркват един с друг

Имам следната страница _Layout.cshtml, която има куп @Html.Action() извиквания към няколко частични изгледа.

<div class="wrapper">
    <div class="header">
        <a style="text-decoration:none;" href="/[email protected]("Index", "Home")"><div class="logo"><p>fisharwe</p><span class="greenText float-right">:</span></div></a>
        <div class="searchBar">
            @Html.Action("Search", "Item")
        </div>
        <div id="hearGreenBar"></div>
    </div>
    <div class="pageContent">
        @RenderBody()
    </div>

    <div class="rightColumn">
        <div id="help">
            <div id="allHelpContent">
                <span id="helpIcon"></span> <span id="helpTitle">help</span> <span id="helpArrow"></span>
            </div>
        </div>

        <div id="userPanel">
            @if(!Request.IsAuthenticated)
            {
                <div id="loginForm">@Html.Action("Login", "User")</div>
                <div id="registerForm">@Html.Action("Register", "User")</div>
                <hr class="greyLine" />

                <div id="recentlyViewedItems">
                    <div id="recentItemsTitle">
                        <span class="recentItemsIcon"></span><span class="theRecentTitle">Recently Viewed</span>
                    </div>
                </div>
            }
            else
            {
                <div id="userInfoSummary">@Html.Action("Summary", "User")</div>
            } 
        </div>
    </div>
</div>

В горната част можете да видите извикването @Html.Action("Seach", "Item"), което изобразява лента за търсене и позволява на потребителите да търсят елементи/категории/подкатегории...и т.н. Сега това работи, но генерира нов проблем! Когато потребителят търси нещо и резултатите се визуализират, частите Login и Register в страничната лента (userPanel) показват грешки при проверка, като например „Имейлът не може да бъде празен“. Разбирам, че изгледът се изобразява независимо от това каква част е публикувана обратно, но трябва да има начин това да се предотврати... Трябва ли да се отърва от частичните части и да изобразя всичко в страницата _Layout.cshtml? Но в такъв случай трябва да направя тази страница напечатана, което ще причини още един проблем... И така, какво може да се направи? Отворен съм за всякакви предложения...

Благодаря ти.


person Kassem    schedule 25.04.2011    source източник


Отговори (1)


Имате ли различни форми за търсене и какво има в "userPanel"?. Може да искате да се уверите, че вашето търсене води до получаване, а не до публикация.

 @using (Html.BeginForm("Search", "YourController", FormMethod.Get))
person B Z    schedule 25.04.2011
comment
@B Z: @Html.Action("Login", "User") и @Html.Action("Register", "User"), като и двата съдържат формуляри. - person Kassem; 25.04.2011
comment
Вашето търсене също има ли форма? Вижте актуализирания ми отговор, проверете дали правите получаване, а не публикация - person B Z; 25.04.2011
comment
@B Z: Всъщност да, съдържа формуляр и прави публикация, а не получаване. Предполагам, че сега, след като промених името на метода, GET би било по-подходящо. Ще го пробвам :) - person Kassem; 25.04.2011
comment
@B Z: това всъщност реши проблема! +1 и благодаря за помощта! :) - person Kassem; 25.04.2011