亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Automapper 將模型傳遞給 ViewModel

使用 Automapper 將模型傳遞給 ViewModel

C#
ITMISS 2022-11-21 15:59:28
我正在從事 ASP.NET 核心項目。我想使用 Automapper 將模型映射到視圖模型,但是存在下面描述的問題 This is MyRepository public class MyRepository {     public async Task<IEnumerable<Cars>> GetAllCarsAsync()    {        return await _RepositoryContext.Set<Cars>().ToListAsync();    } }這是我的控制器 public class MyController: Controller {    [HttpGET]    public async Task<IActionResult> Create()      {          var car = await _MyRepository.GetAllCarTypesAsync();          var model = _mapper.Map<IEnumerable<CarsVM>>(car);          return View(model);      } }最后這是我的觀點@model  DataLayers.Models.ViewModels.CarsVM<form " asp-controller="MyController" asp-action="Create">  <label class="label" asp-for="Carname"></label>  <input class="input" type="text" asp-for="Carname">  <select>     <option> A carType </option>     <option>A carType </option>  </select></from>問題出在我的控制器上。var car 返回 IEnumerable,然后我們將結果映射到 CarsVM。當我傳遞模型進行查看時,它期望 CarsVM 而不是 CarsVM 的 IEnumerable。我怎樣才能隱藏它們?如果現在可以轉換它們,那我該怎么辦?如何傳遞我的數據以供查看?
查看完整描述

1 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

我建議更新 automapper 行以轉換為 List 而不是 IEnumerable 接口,以便您可以確保視圖模型在控制器中具體化。查看存儲庫代碼很明顯,但如果您只能看到存儲庫返回 IEnumerable,則不是。


下面的主要更改是確保 AutoMapper 映射到視圖模型對象列表,并且視圖正在接收由這些視圖模型對象列表組成的模型。我假設 CarsVM 對象是單個 Cars 對象的視圖模型實例。


資料庫


public class MyRepository

{

    public async Task<List<Cars>> GetAllCarsAsync()

    {

        return await _RepositoryContext.Set<Cars>().ToListAsync();

    }

}

控制器


public class MyController: Controller

{

    [HttpGET]

    public async Task<IActionResult> Create()

    {

        var car = await _MyRepository.GetAllCarTypesAsync();

        var model = _mapper.Map<List<CarsVM>>(car);

        return View(model);

    }

}

看法


@model List<DataLayers.Models.ViewModels.CarsVM>

<form asp-controller="MyController" asp-action="Create">

    <label class="label" asp-for="Carname"></label>

    <input class="input" type="text" asp-for="Carname">

    <select>

       <option> A carType </option>

       <option>A carType </option>

    </select>

</from>


查看完整回答
反對 回復 2022-11-21
  • 1 回答
  • 0 關注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號