2015-02-24 24 views
1

editorforModel但現在我需要幾個不同的人,我不想使用HTML輔助onebyone。所以我需要這樣的東西;多使用editorforModel

@model JobTrackingSystem.Areas.Panel.ViewModels.Member.NewMemberModel 
    { 

    @Html.EditorForModel() 

    } 

    @model JobTrackingSystem.Areas.Panel.ViewModels.Member.MemberDashboardModel 
    { 
    @Html.EditorForModel() 
    } 

所以我想,讓他們在2周不同的div在1頁也是我控制器不會允許使用這樣的事情 這裏是我的控制器;

public ActionResult Add(NewMemberModel input, HttpPostedFileBase Resim) 
    { 
     if (!ModelState.IsValid) 
     { 
      ShowErrorMessage("Hatalı İşlem Yaptınız."); 
      return RedirectToAction("Index"); 
     } 
     if (Resim == null) 
     { 
      ShowErrorMessage("Lütfen Boş Alan Bırakmayın."); 
      return RedirectToAction("Index"); 
     } 

     var epostaKontrol = Db.MyMembers.FirstOrDefault(p => p.Mail == input.Mail); 
     if (epostaKontrol != null) 
     { 
      ShowErrorMessage("E-Mail Adresi Adı Kullanımda."); 
      return RedirectToAction("Index"); 
     } 
     string[] folders = new string[] { "Uploads/Member/Orjinal/", "Uploads/Member/Kucuk/" }; 

     string fileExt = Path.GetExtension(Path.GetFileName(Resim.FileName)).ToLower(); 
     string orjName = Guid.NewGuid() + fileExt; 
     string filePath = Path.Combine(Server.MapPath("~/" + folders[0]), orjName); 
     string fileThumbPath = Path.Combine(Server.MapPath("~/" + folders[1]), orjName); 
     if (!(fileExt.Equals(".jpg") || fileExt.Equals(".jpeg") || fileExt.Equals(".png"))) 
     { 
      ShowErrorMessage("Yalnızca .Jpg .Jpeg ve .Png Uzantılı Dosyalar Yükleyebilirsiniz."); 
      return RedirectToAction("Index"); 
     } 
     Resim.SaveAs(filePath); 

     var thumber = ImageHelper.Thumber(750, filePath, fileThumbPath); 
     if (!String.IsNullOrWhiteSpace(thumber)) 
     { 
      ShowErrorMessage(thumber); 
      return RedirectToAction("Index"); 
     } 

     var item = new Member 
     { 
      Name = input.Name, 
      Mail = input.Mail, 
      SurName = input.SurName, 
      Phone = input.Phone, 
      Sira = Db.MyMembers.Max(m => (short?)m.Sira) ?? 0 + 1, 
      DepartmentType = (DepartmentTypeForUser)input.DepartmentTypeFor, 
      MemberType = (MemberTypeForUser)input.MemberTypeFor, 
      Image = "/" + folders[1] + orjName 
     }; 
     item.SetPassword(input.Password); 
     Db.MyMembers.Add(item); 
     Db.SaveChanges(); 

     ImageResizeModel model = new ImageResizeModel() 
     { 
      ImagePath = "/" + folders[1] + orjName, 
      ImageThumbPath = "/" + folders[1] + orjName, 
      SelectionSize = "[ 750, 750 ]", 
     }; 
     return View("CropImage", model); 

    } 

那麼如何在不同型號領域多次使用多個editorforModel?我可以在NewMemberModel類像2種方法做任何事情,然後調用editorforModelMethod1 - editorforModelMethod2

+0

ÿ每個視圖只能有一個模型,因此在單個視圖中不可能有多個EditorForMode與不同的模型。但是,您可以創建包含兩者的複合視圖模型。 – 2015-02-24 17:33:05

+0

嗯是的,但是當我創造一切我需要在一個模式,並運用editorformodel然後把所有的模型,每個網頁,但我需要與表單嚮導4個不同的頁面中使用它,所以我還挺需要使用一些editorformodel或只是普通的方式爲html幫手 – Jackal 2015-02-24 18:20:18

+0

CodeCaster修復了我的問題ı認爲我沒有正確解釋,我需要什麼。感謝您的回答 – Jackal 2015-02-24 18:54:05

回答

1

這並不完全清楚,我你的要求(尤其是「控制器將不會允許」,一個實際的錯誤信息會幫助我們,可以幫助你研究這個問題),但它看起來像你可以使用複合視圖模型:

public class NewMemberWithDashboardModel 
{ 
    public NewMemberModel NewMember { get; set; } 

    public MemberDashboardModel MemberDashboard { get; set; } 
} 

然後使用它是這樣的:

@Html.EditorFor(m => m.NewMember) 
@Html.EditorFor(m => m.MemberDashboard) 

而在你的控制器:

public ActionResult Add(NewMemberWithDashboardModel model, ...) 
+0

好其實我覺得我可以用UR答案做到這一點,我會盡快嘗試。並會告訴你它好嗎 – Jackal 2015-02-24 18:22:46

+0

非常感謝你的隊友,它運作良好。你是救世主。我不知道爲什麼我不能想到它:D @CodeCaster – Jackal 2015-02-24 18:53:22

相關問題