[英]How to create an ASP.NET Core ViewResult in a class library?
在我的 ASP.NET Core 网站中,我有一个类库,它执行一些无聊的逻辑,但最终返回:
new RedirectResult("-some url");
new ViewResult(....)
现在我不确定如何将模型传递给ViewResult
?
我试过这个:
var viewResult = new ViewResult
{
ViewName = "MarketingPreferences",
};
viewResult.ViewData.Model = myModel; // Exception is thrown :(
但viewData
属性为空。
于是我想:只要创造它,对吧?
viewResult.ViewData = new ViewDataDictionary(..)
但我不知道该传递什么:(
有两种选择:
public ViewDataDictionary(ViewDataDictionary source);
public ViewDataDictionary(IModelMetadataProvider metadataProvider, ModelStateDictionary modelState);
而且我在第一个选项中没有现有的ViewDataDictionary
...
第二个..我不知道IModelMetadataProvider
是什么?
有人可以帮忙吗?
如果您想将模型传递给ViewResult
,您可以按照以下代码:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
public class Test
{
Stu stu = new Stu()
{
Name = "Jack"
};
public ViewResult test()
{
var viewData = new ViewDataDictionary<Stu>(new EmptyModelMetadataProvider(), new ModelStateDictionary());
viewData = new ViewDataDictionary<Stu>(viewData, stu);
ViewResult viewresult = new ViewResult()
{
ViewData = viewData
};
return viewresult;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.