2017-07-25 13 views
0

在這裏,我正在創建一個小應用程序。我在哪裏輸入數據的地方有這個HTML頁面。點擊提交按鈕後,數據應該通過存儲過程存儲在數據庫中。我已經在存儲過程中寫入了插入語句。提交後在SqlServer中存儲輸入的數據

的html代碼:

@model USTGlobal.WorkBench.UI.Models.FloorPlanViewModel 
@{ 
    ViewBag.Title = "RequestForm"; 

} 
<div> 
    <div class="row"> 
     <div class="col-lg-12"> 
      <h2 class="page-header">Request Form</h2> 
     </div> 
    </div> 

    <div class="row"> 
     <div class="col-lg-8"> 
      <div class="form-horizontal"> 
       <div class="form-group"> 
        <label class="control-label col-lg-4">Period:</label> 
        <div class="col-lg-8"> 
         @Html.DropDownList("Quarter", new SelectListItem[] { (new SelectListItem() { Text = "Q1", Value = "1"}), (new SelectListItem() { Text = "Q2", Value = "2" }), (new SelectListItem() { Text = "Q3", Value = "3" }), (new SelectListItem() { Text = "Q4", Value = "4"}) }, "-- Select Quarter --", new { @class = "form-control" }) 
         <br /> 
         @Html.DropDownList("Year", new SelectListItem[] { (new SelectListItem() { Text = "2016", Value = "2016" }), (new SelectListItem() { Text = "2017", Value = "2017" }) }, "-- Select Year --", new { @class = "form-control" }) 
        </div> 
       </div> 
      </div>   
      <div class="form-horizontal"> 
        <div class="form-group"> 
         <label class="control-label col-lg-4">Line ID:</label> 
         <div class="col-lg-8"> 
          @Html.TextBoxFor(model => model.floorConfig.LineID, new { onkeypress = "return isNumberKey(event)", @class = "form-control" }) 
         </div> 
        </div> 
      </div> 

      <div class="form-horizontal"> 
       <div class="form-group"> 
        <label class="control-label col-lg-4">Project:</label> 
        <div class="col-lg-8"> 
         @Html.TextBoxFor(model => model.floorConfig.Project, new { onkeypress = "return isNumberKey(event)", @class = "form-control" }) 
        </div> 
       </div> 
      </div> 


      <div class="form-horizontal"> 
       <div class="form-group"> 
        <label class="control-label col-lg-4">Budget:</label> 
        <div class="col-lg-8"> 
         @Html.TextBoxFor(model => model.floorConfig.Budget, new { onkeypress = "return isNumberKey(event)", @class = "form-control" }) 
        </div> 
       </div> 
      </div>   


     </div> 
    </div> 

    <div class="row"> 
     <div class="col-lg-offset-4" style="padding: 10px 0px 0px 0px;"> 
      <input type="submit" id="btnSubmit" value="Submit" class="btn btn-lg btn-success" /> 
      <input type="button" id="btnCancel" value="Clear" class="btn btn-lg btn-success" /> 
     </div> 
    </div> 

</div> 

FloorPlanviewmodel:public FloorConfirguration floorConfig { get; set; }

庫代碼:

public class FloorConfirguration 
    { 
     public string Quarter { get; set; } 
     public int Year { get; set; } 
     public string LineID { get; set; } 
     public string Project { get; set; } 
     public decimal Budget { get; set; } 
    } 

如何從這裏向前邁進?我是否應該撥打controller中的存儲過程?

+0

你有什麼樣的存儲過程和你想調用它的方法(通過基本的'SqlConnection'或ORM如EF)? –

回答

0

您可以使用

查看;

@using (Html.BeginForm("ActionName", "Controller", FormMethod.Post)) 
{ 
    //Add your desing 
} 

控制器;

[HttpPost] 
public ActionResult ActionName(Model model) 
{ 
    if (ModelState.IsValid) 
    { 
     try 
     { 
      //Create SQL class and write your method (insert, update or delete etc.). 
      bool check = SQLManager.Check(model); 

      if (check) 
      { 
       //Make something 
      } 
      else 
      { 
       //Return error 
       return View("Index"); 
      } 
     } 
     catch (Exception ex) 
     { 
      //Return error 
      return View("Index"); 
     } 
    } 
    else 
    { 
     //Return error 
     return View("Index"); 
    } 
} 
1

你可以告訴實體框架使用DbContext.Database.ExecuteSqlCommand

此方法將執行你指定的任何命令來執行特定的SQL命令,無論是其包含SQL代碼或存儲過程的名稱的字符串。

ExecuteSqlCommand接受一組參數,以及如此執行存儲過程需要的參數值(和你應該)爲要插入數據的每一個新的位,你可以試試這個:

List<SqlParameter> args = new List<SqlParameter>(); 
args.Add(new SqlParameter("@parameterName", parameterValue)); 
// Keep adding parameters like this 

using (MyDatabaseContext db = new MyDatabaseContext()) 
{ 
    db.Database.ExecuteSqlCommand("StoredProcedureName", args.ToArray()); 
} 

這將在您的提交按鈕發佈到Controller中的ActionResult函數中執行。

相關問題