Основной вид устраняет фильтр после создания элемента из частичного представления - PullRequest
1 голос
/ 22 марта 2012

Моя проблема в том, что у меня есть представление под названием «Создать», которое относится к созданию рекламных акций. Каждая акция имеет Жанры в соответствии с пользователем, поэтому, когда я вхожу в «создание рекламных акций», у меня появляется список (выпадающий список) с жанрами пользователя, но если нет подходящего жанра, я должен создать его, не выходя из текущей страницы, поэтому я использовал частичное представление для создания новых жанров и вставил его в основной вид (Создание рекламных материалов). Это действительно работает, но после создания жанра основной вид показывает ВСЕ жанры, а не только те, которые соответствуют текущий пользователь.

Это основной вид:

@model Points2Pay.Models.Promocion

@{
    ViewBag.Title = "Create";
}

<h2>Create</h2>


<script type="text/javascript">

$(document).ready(function () {

    $(".slidingDiv").hide();
    $(".show_hide").show();

    $('.show_hide').click(function () {
        $(".slidingDiv").slideToggle();
    });

});

@using (Html.BeginForm())
{

        <a href="#" class="show_hide">Show/hide</a>
        <div class="slidingDiv" id="partialView">
        @{Html.RenderAction("Create2", "Genre");}
        </div>
}

@using (Html.BeginForm("Create","StoreManager"))
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Promocion</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.GenreId, "Genre")
        </div>
        <div class="editor-field" id="DROPDOWN">
            @Html.DropDownList("GenreId", String.Empty)
            @Html.ValidationMessageFor(model => model.GenreId)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Title)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Title)
            @Html.ValidationMessageFor(model => model.Title)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Price)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Price)
            @Html.ValidationMessageFor(model => model.Price)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Puntos)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Puntos)
            @Html.ValidationMessageFor(model => model.Puntos)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.PromocionArtUrl)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PromocionArtUrl)
            @Html.ValidationMessageFor(model => model.PromocionArtUrl)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>`

ЭТО ВТОРИЧНЫЙ ВИД

    @model Points2Pay.Models.Genre

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

        <legend>New Genre</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Description)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Description)
            @Html.ValidationMessageFor(model => model.Description)
        </div>



        <p>
            <input type="submit" value="Create new Genre" />
        </p>

}

И ЭТО КОНТРОЛЛЕР

[ChildActionOnly]
public ActionResult Create2()
{

    return PartialView("Create2");

} 



//
// POST: /Genre/Create2

[HttpPost]
public ActionResult Create2(Genre genre)
{
    var ComercioActual = (Guid)System.Web.Security.Membership.GetUser().ProviderUserKey;
    if (ModelState.IsValid)
    {
        genre.ComercioId = ComercioActual;
        db.Genres.Add(genre);
        db.SaveChanges();
        return PartialView("Create2");


    }

    return PartialView("Create2");
}

Надеюсь, вы сможете мне помочь.

...