我需要将所选项目的ID从下拉列表发布到相同控制器的post方法并在同一视图中呈现内容 我很快帮助我:(
我的观点
@Html.DropDownListFor(x => x.hotelmodel.SelectedHotelId, Model.hotelmodel.DrpHotelList)
<div>
<p>@Model.percentageoccupied</p>
<p>@Model.Revenue</p>
<p>@Model.UnSold</p>
<div>
MY HttpGetMethod
[HttpGet]
public ActionResult Counter()
{
var personid = ((PersonModel)Session["PersonSession"]).PersonId;
var model = new CounterforModel();
model.hotelmodel.DrpHotelList = iCommonservice.GetHotelListByPersonId(personid);
return View(model);
}
我的HttpPostMethod
[HttpPost]
public ActionResult Counter(int id)
{
var result = iCommonservice.LoadCounter(id);
model.percentageoccupied = Convert.ToInt32(result[0].percentageoccupied);
model.Revenue = Convert.ToDecimal(result[0].Revenue);
model.UnSold = Convert.ToInt32(result[0].UnSold);
return View(model);
}
答案 0 :(得分:0)
在POST方法中,将View Model作为参数传递。然后,您可以使用已发布的hotelModel.SelectedHotelId
来获取所需内容,更新模型值并将更新的模型传递给视图。
public ActionResult Counter(CounterforModel model)
{
var result = iCommonservice.LoadCounter(model.hotelmodel.SelectedHotelId);
model.percentageoccupied = Convert.ToInt32(result[0].percentageoccupied);
model.Revenue = Convert.ToDecimal(result[0].Revenue);
model.UnSold = Convert.ToInt32(result[0].UnSold);
return View(model);
}
如果需要,您可以使用@Ajax.BeginForm()
或jQuery .ajax()
对您的操作进行ajax调用。你可以查看here。