我正在尝试渲染两个部分视图。一个有表格,另一个有表。使用表单添加项目时,列表应更新。
控制器
[HttpGet]
// GET: MetalStock
public PartialViewResult AddMetalStock()
{
return PartialView();
}
[HttpPost]
public ViewResult AddMetalStock(MetalStockViewModel metalStockViewModel)
{
var metalDto = new MetalStockDto();
metalDto.GlobalMaterialId = Guid.NewGuid();
metalDto.Category = "Metal";
this.metalStockRepository.Insert(metalDto);
this.metalStockRepository.SaveChanges();
return View("Index");
}
public PartialViewResult AllMetalStockItems()
{
var allMetalDtos = this.metalStockRepository.GetAllMetalSotckDtos();
var allMetalViewModels = Mapper.Map<IEnumerable<MetalStockDto>,IEnumerable<MetalStockViewModel>>(allMetalDtos);
return PartialView("_AllMetalStockItems", allMetalViewModels );
}
查看:索引
<h2>Metal Stock</h2>
@Html.Action("AllMetalStockItems","MetalStock")
@Html.Action("AddMetalStock","MetalStock")
现在,当我添加项目时,我收到以下错误
堆栈不足以安全地继续执行程序。这可能是因为调用堆栈上的函数太多或堆栈上的函数占用太多堆栈空间。
这背后的原因是什么?我该如何解决这个问题?
答案 0 :(得分:2)
尝试更改
<h2>Metal Stock</h2>
@Html.Action("AllMetalStockItems","MetalStock")
@Html.Action("AddMetalStock","MetalStock")
要
<h2>Metal Stock</h2>
@Url.Action("AllMetalStockItems","MetalStock")
@Url.Action("AddMetalStock","MetalStock")
因为页面是以递归方式调用自身的。