2011-07-04 50 views
0

我已經得到了這個半自動生成的代碼,但我不確定發佈數據的保存位置以及我如何訪問控制器中的變量,以便驗證並將其上傳到我的數據庫。如何在asp.net mvc編輯器視圖中訪問我的發佈數據?

@model FirstWeb.Models.Picture 

@{ 
    ViewBag.Title = "Upload et billede"; 

} 

<h2>Upload et billede</h2> 

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 



@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 
    <fieldset> 

     <input type="file" name="file" id="file" /> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Title) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Title) 
      @Html.ValidationMessageFor(model => model.Title) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.ConcertYear) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.ConcertYear) 
      @Html.ValidationMessageFor(model => model.ConcertYear) 
     </div> 

     <p> 
      <input type="submit" value="Upload" /> 
     </p> 
    </fieldset> 
} 

<div> 
    @Html.ActionLink("Tilbage til billeder", "Index") 
</div> 

回答

1

看來你正在試圖在這裏上傳文件。結帳following blog post。您需要爲表單使用multipart/form-data enctype才能上傳文件。所以第一步就是解決您的表單定義:

@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    ... 
} 

然後更新您的視圖模型,以便它需要上傳的文件屬性:

public class Picture 
{ 
    public HttpPostedFileBase File { get; set; } 
    public string Title { get; set; } 
    public int ConcertYear { get; set; } 

    ... some other properties used in the view 
} 

,並終於有你的控制器POST操作藉此查看模型作爲參數:

[HttpPost] 
public ActionResult Foo(Picture model) 
{ 
    if (!ModelState.IsValid) 
    { 
     // there were validation errors => re-display the view 
     return View(model); 
    } 

    // the model is valid at this stage => check if the user uploaded a file 
    if (model.File != null && model.File.ContentLength > 0) 
    { 
     // the user uploaded a file => process it ... 
    } 
    ... 
} 
+0

是的,這點,但首先我需要能夠訪問我的控制器中的我的發佈數據,這是我與atm的結合。 – Mech0z

+0

@ Mech0zm您的POST控制器操作會將視圖模型作爲參數。該視圖模型將包含所有表單值。 –

+0

所以我需要一個2公共ActionResult上傳()返回視圖和一個將圖片作爲參數,並有[HttpPost]屬性來處理我得到的項目? – Mech0z

1

編輯操作應該將您的模型作爲參數。

其proeprties將具有編輯的值。

+0

如何訪問該模型參數? (我是新來的asp.net)如果我在我的視圖中寫@ Model.ConcertYear它抱怨,並且在我的控制器中沒有模型變量可訪問 – Mech0z

+0

您需要爲該函數添加一個參數。 – SLaks

相關問題