2013-07-01 34 views
0

我有以下的過程模型中使用EF代碼中創建第一:MVC4形式

public class Course 
{ 
    [Key] 
    public int CourseID { get; set; } 

    [StringLength(50)] 
    public string Name { get; set; } 

    [StringLength(200)] 
    public string Description { get; set; } 

    [StringLength(50)] 
    public string Author { get; set; } 

    public DateTime UploadDate { get; set; } 

    public DateTime ExpiryDate { get; set; } 

    public int ParticipationPoints { get; set; } 

    public string BlobURL { get; set; } 

    //1 to many relationship 
    public virtual ICollection<Audit> Audits { get; set; } 

    public virtual ICollection<Content> Contents { get; set; } 

    public virtual ICollection<Enrollment> Enrollments { get; set; } 

    public virtual ICollection<Feedback> Feedbacks { get; set; } 

    public virtual ICollection<Keyword> Keywords { get; set; } 

    public virtual ICollection<Target> Targets { get; set; } 

    public virtual ICollection<CourseSection> CourseSections { get; set; } 

    //many to many relationship 
    public virtual ICollection<MetaLearningUser> MetaLearningUsers { get; set; } 

} 

在設計模式中,我有以下HTML字段:

<form class="custom"> 
     <fieldset> 
     <div class="row"> 
      <div class="twelve columns"> 
      <div class="row"> 
       <div class="six columns"> 
       <label>Course Title</label> 
       <input type="text"> 
       </div> 
       <div class="six columns"> 
       <label>Author</label> 
       <input type="text"> 
       </div> 
      </div> 

      <div class="row"> 
       <div class="six columns"> 
       <label>Keywords</label> 
       <input type="text"> 
       </div> 
       <div class="six columns"> 
        <label>Metadata</label> 
        <input type="text"> 
       </div> 
      </div> 

      <div class="row"> 
       <div class="twelve columns"> 
       <label>Description</label> 
       <textarea></textarea> 
       </div> 
      </div> 

      <div class="row"> 
       <div class="six columns bottom20"> 
       <label>Media type</label> 
        <div class="custom dropdown"> <a href="#" class="current"> Select media type </a> <a href="#" class="selector"></a> 
        <ul> 
         <li>Screencast</li> 
         <li>Podcast</li> 
         <li>Document</li> 
         <li>SCORM</li> 
        </ul> 
        </div> 
       </div> 
       <div class="six columns bottom20"> 
       <label>Directory</label> 
        <div class="custom dropdown"> <a href="#" class="current"> Select subject </a> <a href="#" class="selector"></a> 
        <ul>      
         <li>Human Resources</li> 
         <li>IT Security</li> 
         <li>Corporate Governance</li> 
         <li>Health &amp; Safety</li> 
         <li>Legal</li> 
         <li>IT Infrastructure</li> 
         <li>3rd Parties</li> 
        </ul> 
        </div> 
       </div> 
      </div> 
      <div class="row"> 
      <div class="six columns"> 
       <label>Start date</label> 
       <input type="date" class="datefield"> 
      </div> 
      <div class="six columns"> 
       <label>End date</label> 
       <input type="date" class="datefield"> 
      </div> 
      </div> 
      </div> 
     </div> 
     <a href="#" class="medium button bottom20">Submit</a> 
     </fieldset> 
     </form> 
    </div> 

我怎樣才能當提交按鈕被按下時,將輸入到文本框中的數據保存到實體框架數據庫中?

回答

1

當你在模型視圖發送,使用類似

@using(Html.BeginForm("Index")) 
{ 
    @Html.TexboxFor(x => x.Name) // istead of <input type=text> 
    @Html.TextborFor(x => x.Description) 
    <input type="submit" value="Submit button"/> 
} 

的模型來看,這反過來將使它回來後當您單擊submitt按鈕綁定。

在控制器中你有什麼樣

[HttpPost] 
public ActionResult Index(CourseViewModel model) // because you'd want to use a 
// view model and not the entity itself 
{ 
// check if the model is valid 
// maybe some more logic 
db.SaveChanges(); 
return View(model); 
}