[英]Passing a DropDown string from a View to a Controller method
我的問題是一個兩部分的問題。
1)我試圖通過ajax調用將一個字符串從我的索引視圖傳遞到一個方法( UpdateView(string selectProductionLine)
)中。 我可以通過 ajax 調用來調用該方法,但我無法將字符串變為空值。
2) UpdateView(string selectProductionLine)
此方法( UpdateView(string selectProductionLine)
)后,我希望它更新模型,然后使用該更新方法調用局部視圖。 目前我無法讓它調用該部分視圖。
我一直在尋找幾種不同的嘗試,下面的鏈接,但一直無法讓它發揮作用。 我的 JS 並不是那么好,我還是一個初學者,我很難結合其他人所做的。
索引視圖:
@(Html.Kendo().DropDownList()
.Name("productionLine-dropdown")
.DataTextField("Name")
.DataValueField("Id")
.DataSource(source =>
{
source.Read(read => { read.Action("GetDropDownList", "Home"); });
})
.Events(e =>
{
e.Close("OnClose");
})
)
<div id="Dashboard">
@Html.Partial("~/Views/Home/_Home.cshtml", Model)
</div>
Java腳本:
function OnClose() {
var selectProductionLine = $("#productionLine-dropdown").data("kendoDropDownList").value();
$("#Dashboard").load('/Home/UpdateView', selectProductionLine);
}
function DropDownValue() {
var value = $("#productionLine-dropdown").data("kendoDropDownList").value();
return { selectProductionLine: value };
}
控制器:
public ActionResult _Home(DisplayViewModel dvm)
{
return PartialView(dvm);
}
public ActionResult UpdateView(string selectProductionLine)
{
DisplayViewModel dvm = new DisplayViewModel();
//Some logic
return PartialView("~/Home/_Home.cshtml", dvm);
}
問題:
1) 將一個字符串從 Index 傳遞到UpdateView()
方法中。
2) 使用新的 ViewModel 從UpdateView()
) 調用_Home
局部視圖。
謝謝!
好的,這里有兩個問題。
Javascript
首先,更改您的 .Load 方法以簡單地將 selecProductionLine 值連接到 URL 的末尾。
var selectProductionLine = $("#productionLine-dropdown").data("kendoDropDownList").value();
$("#Dashboard").load("/Home/UpdateView/" + selectProductionLine);
控制器動作
其次,您需要像這樣更改 UpdateView 函數以接收 Id。
public ActionResult UpdateView(string Id)
{
DisplayViewModel dvm = new DisplayViewModel();
ProductionLine pl = _productionLineService.Find(Id);
dvm.ProdLine = new ProductionLineViewModel
{
Id = pl.Id,
CreatedAt = pl.CreatedAt,
Name = pl.Name,
ActiveLine = pl.ActiveLine,
ComputerName = pl.ComputerName,
UPE = pl.UPE
};
return PartialView("~/Home/_Home.cshtml", dvm);
}
這是因為 RouteConfig.cs 中的默認路由使用 {controller}/{action}/{id} 作為任何請求的默認路由。
路由配置
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.