คำถามติดแท็ก viewmodel

13
ViewModel ใน MVC คืออะไร
ฉันใหม่กับ ASP.NET MVC ฉันมีปัญหาในการทำความเข้าใจกับวัตถุประสงค์ของ ViewModel ViewModel คืออะไรและทำไมเราต้องใช้ ViewModel สำหรับแอพพลิเคชั่น ASP.NET MVC ถ้าฉันได้รับตัวอย่างที่ดีเกี่ยวกับการทำงานและคำอธิบายที่จะดีกว่า

8
ละเว้นการทำแผนที่หนึ่งคุณสมบัติด้วย Automapper
ฉันใช้ Automapper และฉันมีสถานการณ์ต่อไปนี้: Class OrderModel มีคุณสมบัติชื่อ 'ProductName' ที่ไม่ได้อยู่ในฐานข้อมูล ดังนั้นเมื่อฉันพยายามทำแผนที่ด้วย: Mapper.CreateMap<OrderModel, Orders>(); มันสร้างข้อยกเว้น: "คุณสมบัติ 1 รายการต่อไปนี้บน Project.ViewModels.OrderModel ไม่ได้ถูกแมป: 'ProductName' ฉันได้อ่านที่วิกิพีเดียของ AutoMapper's for Projectionsในกรณีตรงกันข้าม (แอตทริบิวต์พิเศษอยู่ที่ปลายทางไม่ใช่ในแหล่งที่มาซึ่งเป็นกรณีของฉันจริง ๆ ) ฉันจะหลีกเลี่ยง automapper เพื่อทำการแมปคุณสมบัตินี้ได้อย่างไร

3
AndroidViewModel vs ViewModel
ด้วยการแนะนำของห้องสมุด Android สถาปัตยกรรมองค์ประกอบในชั้นเรียนใหม่ ๆ ที่ถูกนำมารวมทั้งและAndroidViewModel ViewModelอย่างไรก็ตามฉันมีปัญหาในการค้นหาความแตกต่างระหว่างสองคลาสนี้ เอกสารชัดถ้อยชัดคำอธิบายAndroidViewModelดังต่อไปนี้: แอปพลิเคชันตระหนักถึงบริบท ViewModel ฉันซาบซึ้งในความกะทัดรัด แต่สิ่งนี้บอกเป็นนัย ๆ ว่าอะไร? เมื่อเราควรเลือกที่จะใช้AndroidViewModelมากกว่าViewModelและในทางกลับกัน?

14
ไม่สามารถแก้ไขสัญลักษณ์ ViewModelProviders บน AppCompatActivity
สวัสดีฉันกำลังพยายามทำให้ ViewModel ของฉันทำงาน แต่ยังไม่มีโชค Cannot resolve symbol 'ViewModelProviders'ข้อผิดพลาดการแสดง Android สตูดิโอ ทุกคำถามอื่น ๆ ผมพบว่าในหัวข้อนี้ได้รับการแก้ไขextends Activityไปextends AppCompatActivityแต่ฉันกำลังขยายหนึ่งที่เหมาะสม ไม่แน่ใจว่าฉันพลาดอะไร ... รหัสของฉันอ้างอิงจากวิดีโอ YouTube นี้ MainActivity.java public class MainActivity extends AppCompatActivity implements TileAdapter.TileAdapterOnClickHandler { private BaseViewModel viewModel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //set Toolbar Toolbar myToolbar = findViewById(R.id.toolbar); setSupportActionBar(myToolbar); //initialize viewModel viewModel …

9
อาร์กิวเมนต์เพิ่มเติมของ Android ViewModel
มีวิธีส่งอาร์กิวเมนต์เพิ่มเติมไปยังตัวAndroidViewModelสร้างที่กำหนดเองของฉันหรือไม่ยกเว้นบริบทของแอปพลิเคชัน ตัวอย่าง: public class MyViewModel extends AndroidViewModel { private final LiveData<List<MyObject>> myObjectList; private AppDatabase appDatabase; public MyViewModel(Application application, String param) { super(application); appDatabase = AppDatabase.getDatabase(this.getApplication()); myObjectList = appDatabase.myOjectModel().getMyObjectByParam(param); } } และเมื่อฉันต้องการใช้ViewModelคลาสที่กำหนดเองของฉันฉันใช้รหัสนี้ในส่วนของฉัน: MyViewModel myViewModel = ViewModelProvider.of(this).get(MyViewModel.class) ดังนั้นฉันจึงไม่รู้ว่าจะส่งอาร์กิวเมนต์เพิ่มเติมString paramไปยังประเพณีของฉันViewModelได้อย่างไร ฉันสามารถส่งผ่านบริบทของแอปพลิเคชันเท่านั้น แต่ไม่สามารถโต้แย้งเพิ่มเติมได้ ฉันจะขอบคุณทุกความช่วยเหลือ ขอบคุณ. แก้ไข: ฉันได้เพิ่มรหัสแล้ว ฉันหวังว่าตอนนี้จะดีขึ้น

8
DTO = ViewModel?
ฉันใช้ NHibernate เพื่อคงวัตถุโดเมนของฉัน เพื่อให้สิ่งต่างๆง่ายขึ้นฉันใช้โครงการ ASP.NET MVC เป็นทั้งเลเยอร์การนำเสนอและเลเยอร์บริการของฉัน ฉันต้องการส่งคืนอ็อบเจ็กต์โดเมนของฉันใน XML จากคลาสคอนโทรลเลอร์ของฉัน หลังจากอ่านโพสต์บางส่วนที่นี่ใน Stack Overflow ฉันรวบรวม DTO เป็นวิธีที่จะไป อย่างไรก็ตามฉันยังเจอโพสต์ที่พูดถึง ViewModel คำถามของฉัน: Data Transfer Objects และ ViewModels เป็นสิ่งเดียวกันหรือไม่ หรือ ViewModel เป็นรูปแบบย่อยของ DTO หรือไม่?

5
วิธีอัปเดต LiveData ของ ViewModel จากบริการเบื้องหลังและอัปเดต UI
เมื่อเร็ว ๆ นี้ฉันกำลังสำรวจสถาปัตยกรรม Android ซึ่งได้รับการแนะนำโดย Google เมื่อเร็ว ๆ นี้ จากเอกสารฉันพบสิ่งนี้: public class MyViewModel extends ViewModel { private MutableLiveData<List<User>> users; public LiveData<List<User>> getUsers() { if (users == null) { users = new MutableLiveData<List<Users>>(); loadUsers(); } return users; } private void loadUsers() { // do async operation to fetch users } } …

12
สองรุ่นในมุมมองเดียวใน ASP MVC 3
ฉันมี 2 รุ่น: public class Person { public int PersonID { get; set; } public string PersonName { get; set; } } public class Order { public int OrderID { get; set; } public int TotalSum { get; set; } } ฉันต้องการแก้ไขออบเจ็กต์ของทั้งสองคลาสในมุมมองเดียวดังนั้นฉันต้องการบางสิ่งเช่น: @model _try2models.Models.Person @model _try2models.Models.Order @using(Html.BeginForm()) { @Html.EditorFor(x => …

5
ASP.NET MVC Model เทียบกับ ViewModel
ตกลงฉันได้รับฟังการอภิปรายเกี่ยวกับ "ViewModels" เกี่ยวกับ ASP.NET MVC ของ MS ตอนนี้ที่ตั้งใจให้เป็น Model เฉพาะใช่ไหม? ไม่ใช่มุมมองที่เฉพาะเจาะจง ตามความเข้าใจของฉันมันเป็น Model ชนิดหนึ่งที่มีจุดประสงค์เฉพาะในการโต้ตอบกับ View? หรืออะไรทำนองนั้น? ขอขอบคุณคำชี้แจงบางประการ

4
จะแมป View Model กลับไปยัง Domain Model ในการดำเนินการ POST ได้อย่างไร?
ทุกบทความที่พบในอินเทอร์เน็ตเกี่ยวกับการใช้ ViewModels และการใช้ Automapper จะให้แนวทางของการทำแผนที่ทิศทาง "Controller -> View" คุณนำโมเดลโดเมนพร้อมกับ Select Lists ทั้งหมดไปไว้ใน ViewModel แบบพิเศษและส่งไปยังมุมมอง ชัดเจนและดี มุมมองมีรูปแบบและในที่สุดเราก็อยู่ในการดำเนินการ POST ที่นี่ Model Binders ทั้งหมดจะเข้ามาในฉากพร้อมกับ[เห็นได้ชัด] View Model อื่นซึ่ง[อย่างเห็นได้ชัด] เกี่ยวข้องกับ ViewModel ดั้งเดิมอย่างน้อยก็ในส่วนของรูปแบบการตั้งชื่อเพื่อประโยชน์ในการเชื่อมโยงและการตรวจสอบความถูกต้อง คุณจับคู่กับโมเดลโดเมนของคุณได้อย่างไร? ปล่อยให้มันเป็นการกระทำแทรกเราสามารถใช้ Automapper เดียวกัน แต่ถ้าเป็นการดำเนินการอัปเดตล่ะ? เราต้องดึงข้อมูลเอนทิตีโดเมนของเราจากที่เก็บอัปเดตคุณสมบัติตามค่าใน ViewModel และบันทึกลงใน Repository ภาคผนวก 1 (9 กุมภาพันธ์ 2553):บางครั้งการกำหนดคุณสมบัติของโมเดลไม่เพียงพอ ควรมีการดำเนินการบางอย่างกับ Domain Model ตามค่าของ View Model กล่าวคือควรเรียกวิธีการบางอย่างบน Domain Model …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.