gpt4 book ai didi

asp.net-mvc - 我如何将 View 模型类传递给存储库类

转载 作者:行者123 更新时间:2023-12-04 06:39:12 28 4
gpt4 key购买 nike

我为我的自定义 View 模板创建了一个 View 模型类。现在我正在调用 Controller 类中的数据库保存方法。现在我想将此逻辑移至 Repository 类。如何在我的存储库类中访问我的 viewModel 属性?我感谢任何输入。谢谢你。

这是我的代码。

View 模型

    public SelectList StatusList { get; set; }
[Required(ErrorMessage = "* Required")]
public string Status { get; set; }

[Required]
public DateTime? StartDate { get; set; }

我的 Controller 类:
[HttpPost]
public ActionResult Create(CreateViewModel viewModel)
{
if (ModelState.IsValid)
{
// go and save your view model data
using (var adapter = new DataAccessAdapter())
{
TestEntity test1 = new TestEntity();
test1.statusId = Convert.ToInt32(viewModel.Status);
adapter.SaveEntity(test1);

TestEntity1 test2 = new TestEntity2();
test2.mId = test1.mId;
test2.startDate = viewModel.startDate;
adapter.SaveEntity(test2);
}
}

}

最佳答案

您不想访问存储库中的 View 模型属性,而是希望将 View 模型属性映射回实体类并将实体传递给存储库。该实体应该位于 MVC 应用程序和您的数据库都知道的库中。

public class TestController
{
public ITestRepository _repository;

public TestController(ITestRepository repository)
{
_repository = repository;
}

public ActionResult Create(CreateViewModel viewModel)
{
var entity = new TestEntity()
{ statusId = Int32.Parse(viewModel.Status) };
var entity2 = new TestEntity2()
{ mId = entity.mId,
startDate = viewModel.startDate };

_repository.SaveEntity(entity);
_repository.SaveEntity2(entity2);
}
}

关于asp.net-mvc - 我如何将 View 模型类传递给存储库类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4474006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com