TarunKumarSusarapu Ответов: 1

Как передать параметры модели в MVC


Привет,

Я создал одно древовидное представление в devexpress, в котором я отображаю элементы в разных папках в папке App_Data.

Если я нажму на какой-либо узел, мне нужно будет отобразить конкретную панель мониторинга в окне просмотра панели мониторинга.

Я создал 2 частичных представления для просмотра дерева и панели мониторинга.

Если я нажму на этот узел treeview, то мне нужно будет получить путь к этому узлу и передать его модели, в которой загружается панель мониторинга.

Что я уже пробовал:

мой взгляд

DashboardViewer1Partial.cshtml по
@model DevExpress.DashboardWeb.Mvc.DashboardSourceModel
@Html.DevExpress().DashboardViewer(settings => {
	settings.Name = "DashboardViewer1";
	settings.CallbackRouteValues = new { Controller = "Home", Action = "DashboardViewer1Partial" };
	settings.ExportRouteValues = new { Controller = "Home", Action = "DashboardViewer1PartialExport" };
    settings.AllowExportDashboardItems = true;
    settings.Width = new Unit("100%");
    settings.Height = new Unit("800px");
}).BindToSource(Model).GetHtml()


VirtualModePartial.cshtml по

@model AINIPMKPIDashboard_New.Models.TreeViewHelper
@Html.DevExpress().TreeView(
    settings =>
    {
        settings.Name = "tvVirtualMode";
        settings.CallbackRouteValues = new { Controller = "TreeView", Action = "VirtualModePartial" };
        settings.Images.NodeImage.Width = 13;
        settings.Styles.NodeImage.Paddings.PaddingTop = 3;
        settings.Styles.NodeImage.Paddings.PaddingLeft = 3;
        settings.ClientSideEvents.NodeClick = "OnTreeViewNodeClick";
    }).BindToVirtualData(AINIPMKPIDashboard_New.Models.TreeViewHelper.CreateChildren).GetHtml()


мой контроллер

using DevExpress.DashboardWeb.Mvc;

namespace AINIPMKPIDashboard_New.Controllers
{
    public class HomeController : Controller
    {
        //public override string Name { get { return "TreeView"; } }
        public ActionResult Index()
        {
            return View();
        }

        [ValidateInput(false)]
        public ActionResult DashboardViewer1Partial()
        {
            return PartialView("_DashboardViewer1Partial", DashboardViewer1Settings.Model);
        }
        public FileStreamResult DashboardViewer1PartialExport()
        {
            return DevExpress.DashboardWeb.Mvc.DashboardViewerExtension.Export("DashboardViewer1", DashboardViewer1Settings.Model);
        }
    }
    class DashboardViewer1Settings
    {
        public static DevExpress.DashboardWeb.Mvc.DashboardSourceModel Model
        {
            get
            {
                return DashboardSourceModel();
            }
        }
        private static DashboardSourceModel DashboardSourceModel()
        {
            DashboardSourceModel model = new DashboardSourceModel();
            model.DashboardSource = System.Web.Hosting.HostingEnvironment.MapPath(@"~\App_Data\Dashboards\IP_KPI_CENTER_13.8_FORECAST\Responder_Metadata_Backlog_13.8_Forecast.xml"); // Need to pass the parameter and replace the path here 
            return model;
        }
    }
}

Graeme_Grant

Поскольку это элемент управления DevExpress, у вас есть предоплаченная поддержка по Вашей подписке. Пожалуйста, обратитесь к их документации или обратитесь за помощью в службу поддержки.

TarunKumarSusarapu

Это основной поток MVC.Пожалуйста, предложите мне

1 Ответов

Рейтинг:
2

Zahid Mughal

Реализуйте событие onclick, где сделайте Ajax-запрос к методу контроллера, в котором вы возвращаете VirtualModePartial.cshtml. В вызове Ajax передайте необходимый параметр в виде ответа Json и передайте эти параметры частичному виду like.

Вызов Ajax:

$.ajax({
    url: '@Url.Action("Controller", "MethodName")',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data:{Id:2},   //This is passing parameter 
    success: function(data){
      $("DashBoard").html=data; //Data contain your whole resultant partial view that is being display in DashBoard container as a 'div' in this page
    },
    error: errorFunc
});


Метод Контроллера:

ActionResult Method(int Id){ //instead of Id, you can pass an complex parameter in json response
return View("PartionalViewPath",Id);
}


TarunKumarSusarapu

Спасибо