繁体   English   中英

如何在类库中创建 ASP.NET Core ViewResult?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM