我有一個帶有3個圖表的cshtml頁面。爲了生成圖表的數據,我有3種不同的方法,但它們都採用相同的參數。所以我創建了以下模型。在MVC 5 Razor中,你如何將不同的模型傳遞給控制器?
public class ChartParameterModel
{
[Required]
public String BankID { get; set; }
[Required]
public String CompanyID { get; set; }
[Required]
public DateTime StartDate { get; set; }
[Required]
public DateTime EndDate { get; set; }
public Boolean PercentByItemCount { get; set; }
}
控制器爲我的網頁有以下作用:
public ActionResult GetCharts(ChartParameterModel model)
{
return View(ChartDataController.GetChartData(model.BankID, model.CompanyID, model.StartDate, model.EndDate, model.PercentByItemCount));
}
在CSHTML頁面看來你只能有1個模型。所以我不確定如何去通過ChartParameter模型說一個按鈕點擊,然後找回我的圖表數據。
如果我硬編碼ChartParameterModel它工作正常。只需要從cshtml中獲取值即可。
謝謝!
編輯:
這裏是視圖:
@model IEnumerable<IEnumerable<SeriesDataItem>>
@{
ViewBag.Title = "Dashboard Home";
}
<div class="chart-wrapper">
@(Html.Kendo().Chart(Model.First())
.Name("chtItemsByType")
.Title(title => title
.Text("Items By Type")
.Position(ChartTitlePosition.Top)
)
.Legend(legend => legend
.Position(ChartLegendPosition.Left)
)
.Series(series =>
{
series.Pie(
model => model.ItemCount,
model => model.ItemType,
null,
model => model.Exploded
)
.Labels(labels => labels
.Visible(true)
.Template("#= dataItem.ItemCount#")
)
.Tooltip(tooltip => tooltip
.Visible(true)
.Template("#= dataItem.ItemAmountDisplay# #= dataItem.YValue# %")
);
})
.Theme("Bootstrap")
.HtmlAttributes(new { style = "height:100%;" })
)
</div>
很難理解你的問題是什麼。如果您有基於您的模型的視圖,那麼模型的屬性將被髮送到控制器。展示你的觀點。 –
也許我必須包含參數作爲系列數據的一部分?或者在那個模型的某個地方? – Cef
在您編輯之前,您如何看待任何人會知道您使用'Kendo.Chart'?如果您在視圖中需要「IEnumerable>」和「ChartParameterModel」,則使用包含2個屬性的視圖模型,每個模型一個 –