2016-04-02 3 views
1

Ich versuche einige Daten in einigen Bootstrap-Textboxen anzuzeigen.Daten aus der Datenbank übernehmen und mit einem Viewmodel an die View übergeben

Normalerweise würde ich in Webforms ein Dataset festlegen und die .Text-Eigenschaften von Textfeldern mit etwas wie TextBox.Text=Datatable.Rows[0]["FieldName"].ToString() setzen, aber neu zu MVC wurde mir ratlos.

Sowieso ist hier, was ich habe

Ich habe eine Action wie dieser, wo ich die Daten von der DB erhalten. Daten kommen gut. Alles, was ich tun muss, ist sie zusammenzubringen.

public ActionResult CompanySettings() 
     { 
      ClaimsIdentity identity = (ClaimsIdentity)User.Identity; 
      int CompanyId = Convert.ToInt32(identity.FindFirst("CompanyId").Value); 
      //----------------------------- 
      ViewBag.CompanyId = CompanyId; 
      ViewBag.Page = "Inbox"; 
      string Name = identity.Name; 
      string CompanyName = identity.FindFirst("CompanyName").Value; 



      ViewBag.Name = Name; 
      ViewBag.CompanyName = CompanyName; 
      //----------------------------- 

      DataSet ds = CompanyDB.Company_Get_Info(CompanyId); 
      return View(); 
     } 

und mein Viewmodel (nur ein Feld als ein Beispiel zeigt)

public class CompanySettingViewModel 
    { 
     [Display(Name = "CompanyType")] 
     public CompanyType CompanyType { get; set; } 

     //and many more fields like this. 
    } 

ich meinen HTML-Teil auch in jedem Fall

<table> 
    <tr> 
    <td> 
     <div class="registerbox-textbox"> 
      <h6>Company Type</h6> 
     @Html.Bootstrap().TextBoxFor(t=>t.CompanyType).Placeholder("FirmaTipi") 
     </div> 
    </td> 
//again many repeating same type fields inside a table 
<tr> 
<table> 

Entsendung Dies ist wahrscheinlich etwas sehr einfach und einfach, aber ich stecke fest. Hat jemand eine Idee?

Antwort

4
public ActionResult CompanySettings() 
    { 
     ClaimsIdentity identity = (ClaimsIdentity)User.Identity; 
     int CompanyId = Convert.ToInt32(identity.FindFirst("CompanyId").Value); 
     //----------------------------- 
     ViewBag.CompanyId = CompanyId; 
     ViewBag.Page = "Inbox"; 
     string Name = identity.Name; 
     string CompanyName = identity.FindFirst("CompanyName").Value; 



     ViewBag.Name = Name; 
     ViewBag.CompanyName = CompanyName; 
     //----------------------------- 

     DataSet ds = CompanyDB.Company_Get_Info(CompanyId); 
     CompanySettingViewModel NewModel= new CompanySettingViewModel(); 
     NewModel.CompanyType = "AnyValue" //Pass the Company Type value to model 
     return View(NewModel); 
    } 

und Ihre Ansicht wird

<table> 
    <tr> 
    <td> 
     <div class="registerbox-textbox"> 
      <h6>Company Type</h6> 
     @Html.TextBoxFor(t=>t.CompanyType, new { @placeholder = "FirmaTipi" }) 
     </div> 
    </td> 
//again many repeating same type fields inside a table 
<tr> 
<table> 
Verwandte Themen