MVC 5 PartialVIew загружается в другую страницу - PullRequest
0 голосов
/ 02 февраля 2019

Обзор:

По сути, я создаю одностраничное приложение.Три входа и две таблицы, которые загружаются на основе данных входов.

Каждая таблица настроена на вкладку, и на каждой вкладке есть кнопка для загрузки данных соответствующей таблицы.Одна таблица установлена ​​в частичном представлении.Я пытаюсь проверить, работает ли он, поэтому я могу установить обе таблицы на частичное представление.

Проблема: при частичном просмотре таблица загружается в новое окно, когда я нажимаю кнопку отправки.

Пример. Таким образом, при загрузке веб-приложения, например, 'http://localhost:30000/CommissionDatas/', страница индекса загружает страницу и пустые таблицы просто отлично.

Я использую ViewModel, потому что в каждой таблице используется своя модель, и я получу сообщение о том, что таблица частичного представления имеет другую модель данных.

После того, как я нажму кнопку "gpmbutton", для таблицы частичного просмотра, баттион использует атрибут 'formmethod' для вызова метода actionresult '_TrueUp', и он получит данные и вернет модель данных в частичноеПосмотреть.Но таблица частичного представления и ее данные заканчивают тем, что публикуют 'http://localhost:30000/CommissionDatas/_TrueUp',, который является совершенно новой страницей.

Я уже пытался изменить тип метода actionresult на PartialViewResult и изменить тип возвращаемого значенияот «PartialView ()» до «View» в контроллере, и это все еще не работает.Я также попытался использовать @Partial на странице индекса и @RenderPartial для частичного просмотра, и я получил тот же результат.

Кроме того, страницы 'Index' и '_TrueUp' PartialView находятся в одной папке с именем 'CommissionDatas' в папке представлений.

Пожалуйста, ПОМОГИТЕ!

PSЯ удалил код, который не является существенным для проблемы, так как данные чувствительны.

Index.cshtml
-------------------------------------------------------------
@model CommissionReport.Models.ViewModels.CommissionViewModel
@{
   Layout = null;
 }

<!DOCTYPE html>

<html>
<head>
</head>
<body>

    <input type="submit" ID="commissionbutton" 
      formaction="ReturnCommissionData" 
      formmethod="post" 
    />   

    @if (Model != null)
    {
    <table id="mainTable" class="ui striped selectable table">
      <thead>
        <tr>
        </tr>
      </thead>
      <tbody>
       @foreach (var item in Model.CommissionData)
         {
            <tr>
            </tr>
         }
      </tbody>

    </table>
    }

    <input type="submit" class="btn btn-primary" ID="gpmbutton" 
      formaction="_TrueUp" formmethod="post" 
    />

    <div>
       @if (Model != null)
       {
          Html.RenderPartial("_TrueUp");
       }
    </div>

</body>
</html>

Это частичное представление

_TrueUp.cshtml
----------------------------------------------------------------------------
@model CommissionReport.Models.ViewModels.CommissionViewModel

@{
    Layout = null;
    var trueupmodel = Model.TrueUp;
}

    @if (Model != null)
    {
    <table id="mainTable" class="ui striped selectable table">
      <thead>
        <tr>
        </tr>
      </thead>
      <tbody>
       @foreach (var item in Model.TrueUp)
         {
            <tr>
            </tr>
         }
      </tbody>

    </table>
    }

Это контроллер.

private CommissionViewModel vm = new CommissionViewModel();

[HttpPost]
public ActionResult ReturnCommissionData(FormReturn form)
{
        //Code to return data here

        vm.CommissionData = db.CommissionDatas.ToList();
        return View("Index", vm);

}

<HttpPost>
public ActionResult _TrueUp(FormReturn form)
{

    //Code For Data to be returned here
    vm.TrueUp = model;

    return PartialView("_TrueUp", vm);

 }

1 Ответ

0 голосов
/ 05 февраля 2019

Пожалуйста, попробуйте @ Html.Action ("yourAction", "yourController") вместо @ Html.RenderPartial ("_ TrueUp").

Для получения дополнительной информации посетите: Как я могу использовать Html.Действие? MSDN

РЕДАКТИРОВАТЬ:

Использование: @ Html.Partial ("partalViewName ", PartViewViewModel )partViewViewModel является необязательным.
В вашем случае:@ Html.Partial ( "_ TrueUp").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...