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

发布于 2025-02-09 03:00:53 字数 908 浏览 0 评论 0原文

在我的ASP.NET Core网站中,我有一个类库,它可以执行一些无聊的逻辑,但最终返回:

  • new RedirectResult(“ - some wory url”);
  • new ViewResult(... )

现在我不确定如何将模型传递到viewResult

我尝试了以下操作:

var viewResult = new ViewResult
{
    ViewName = "MarketingPreferences",
};

viewResult.ViewData.Model = myModel; // Exception is thrown :(

但是viewData属性为null。

所以我想:创建它,对吗?

viewResult.viewData = new ViewDatadictionary(..),但我不知道该输入什么:(

有两个选项:

  • public viewDataDationary(viewDataDadictionary source);>
  • public ViewDataDictionary(Imodelmetadataprovider Metadataprovider,ModelStateDictionary ModelState);

,我没有第一个选项中的现有viewDataDicticaly ...

我不知道。我不知道imodelmetadataprovider是什么

In my ASP.NET Core website, I have a class library which does some boring logic but finally returns either:

  • new RedirectResult("-some url");
  • new ViewResult(....)

now I'm not sure how I can pass a model to the ViewResult?

I tried this:

var viewResult = new ViewResult
{
    ViewName = "MarketingPreferences",
};

viewResult.ViewData.Model = myModel; // Exception is thrown :(

but the viewData property is null.

So then I thought: just create it, right?

viewResult.ViewData = new ViewDataDictionary(..) but I don't know what to pass into that :(

There are the two options:

  • public ViewDataDictionary(ViewDataDictionary source);
  • public ViewDataDictionary(IModelMetadataProvider metadataProvider, ModelStateDictionary modelState);

and I don't have an existing ViewDataDictionary in the first option ...

and for the second .. i have no idea what an IModelMetadataProvider is?

Can anyone help, please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

剧终人散尽 2025-02-16 03:00:53

如果要将模型传递到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;
        }
    }

If you want to pass model to the ViewResult, You can follow this code:

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;
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文