C# 如何从razor页面处理程序呈现视图?
我有一个项目的集合,我需要用户能够添加和删除它们,而无需实际发表文章。默认情况下,将使用C# 如何从razor页面处理程序呈现视图?,c#,asp.net-core,razor-pages,C#,Asp.net Core,Razor Pages,我有一个项目的集合,我需要用户能够添加和删除它们,而无需实际发表文章。默认情况下,将使用2项呈现页面。然后,用户可以根据需要添加和删除。然后,当他们完成时,有一个提交按钮将触发帖子 我似乎无法使我的编辑器或模板进行渲染。我一直收到一个500错误 Shared/EditorTemplates/MyObjectModel @model Models.Common.MyObjectModel <div> <h5>User #@Model.UserId</h5>
2项
呈现页面。然后,用户可以根据需要添加和删除。然后,当他们完成时,有一个提交按钮将触发帖子
我似乎无法使我的编辑器或模板
进行渲染。我一直收到一个500
错误
Shared/EditorTemplates/MyObjectModel
@model Models.Common.MyObjectModel
<div>
<h5>User #@Model.UserId</h5>
</div>
<div>
<select asp-for="@Model.UserType"
asp-items="@(new SelectList((Dictionary<string, Models.Enums.UserTypes>)ViewData["MyUserTypes"],"Value","Key"))"></select>
</div>
500表示未处理的异常。检查“输出”窗口以查看实际输出的内容happening@CamiloTerevinto由于某种原因,它找不到该页。我只是在
共享之前添加了页面
,但它仍然找不到。我这样做是正确的还是应该返回ViewResult?@CamiloTerevinto如果你知道的话,还有没有更干净的方法将模型传递给编辑器或模板
?这就是我想要的,我只是返回一个PartialViewResult
,因为我不知道还需要返回什么,也找不到其他任何内容。@CamiloTerevinto一旦我将返回类型更改为ViewResult()
,它就会找到文件。现在我得到了一个值不能为null
错误,我必须跟踪它。问题是,编辑器模板应该由@Html.EditorFor
调用使用,而不是作为独立视图呈现。这就是为什么我建议部分观点
public IActionResult OnGetEmptyStopTemplate()
{
var viewDataBase = new ViewDataDictionary(new Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider(),
new Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary())
{
{ "MyUserTypes", UserTypes}
};
ViewDataDictionary<MyObjectModel> viewdata = new ViewDataDictionary<MyObjectModel>(viewDataBase , new MyObjectModel());
return new PartialViewResult() { ViewName = "~/Shared/EditorTemplates/MyObjectModel", ViewData = viewdata };
}