2014-04-16 41 views
0

這裏是我的模型:MVC 4如何調用上傳功能在Extisting控制器

public string ALTCLC { get; set; } 

public string ALTGEN { get; set; } 
public int ALTCNIC { get; set; } 
public DateTime ALTDOB { get; set; } 
[Required] 

public string ALTName { get; set; } 

這裏是我的控制器名稱= AdultLiteracy控制器 每一件事情是EF但我寫我的類名上傳未工作

namespace LiteracyPayroll.Controllers 
{ 
public class AdultLiteracyTeachersController : Controller 
{ 
private PayrollDBContext db = new PayrollDBContext(); 

// 
// GET: /AdultLiteracyTeachers/ 

public ActionResult Index() 
{ 
var adulliteracyteachers = db.AdulLiteracyTeachers.Include(a => a.District); 
return View(adulliteracyteachers.ToList()); 
} 
[HttpPost] 
public ActionResult Upload(HttpPostedFileBase[] files) 
{ 
foreach (HttpPostedFileBase file in files) 
{ 
string path = System.IO.Path.Combine(Server.MapPath("~/App_Data"), System.IO.Path.GetFileName(file.FileName)); 
file.SaveAs(path); 
} 
ViewBag.Message = "File(s) uploaded successfully"; 
return RedirectToAction("Index"); 
} 
// 
// GET: /AdultLiteracyTeachers/Details/5 

public ActionResult Details(int id = 0) 
{ 
AdulLiteracyTeachers adulliteracyteachers = db.AdulLiteracyTeachers.Find(id); 
if (adulliteracyteachers == null) 
{ 
return HttpNotFound(); 
} 
return View(adulliteracyteachers); 
} 

/

這是我的觀點:

@model LiteracyPayroll.Models.AdulLiteracyTeachers 

    @{ 
    ViewBag.Title = "Create"; 
    } 

    <h2>Create</h2> 

    @using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 

    <fieldset> 
    <legend>AdulLiteracyTeachers</legend> 

    <div class="editor-label"> 
    @Html.LabelFor(model => model.DistID, "District") 
    </div> 
    <div class="editor-field"> 
    @Html.DropDownList("DistID", String.Empty) 
    @Html.ValidationMessageFor(model => model.DistID) 
    </div> 

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

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

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

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

    <div class="editor-label"> 
    @Html.LabelFor(model => model.ALTName) 
    </div> 


<label for="file">Upload Image:</label> 
<input type="file" name="files" value="Upload Image" /> 
<input name="Upload" type="submit" value="Create" /> 
</p> 
</fieldset> 

這個問題我面對當我按我的創建按鈕的值傳遞到數據庫,但圖像文件不張貼 如何在我的現有控制器類中調用我上傳我的動作結果?

回答

0

對於表單文件發佈,你必須做出形式是這樣的:

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

,並在行動:

[HttpPost] 

public ActionResult ACTION(AdulLiteracyTeachers model, HttpPostedFileBase file) 
{ 
} 

,或者您可以讀取請求文件:

[HttpPost] 
    public ActionResult ACTION(AdulLiteracyTeachers model) 
    { 
     foreach (string requestFile in Request.Files) 
       { 
        HttpPostedFileBase file = Request.Files[requestFile]; 
        if (file.ContentLength > 0) 
        { 
        } 
       } 
    } 
+0

Ehsan sajjad我已經使用了這個@using(Html.BeginForm(「Upload」,「CONTROLLER」,FormMethod.Post,new {EncType =「multipart/form-data」))) 但只有上傳功能執行其他文件沒有傳遞到Databse –

+0

他們應該發佈,你正在做一些其他的事情不對 –

+0

提供您的發佈行動以及 –

相關問題