Passing-Modell die Daten vom View zum Controller und mit seinen Werten
Ich versuche zum senden von Daten von der anzeigen und verwenden Sie es in der Steuerung zu konstruieren, die einen Dateinamen für eine Datei hochladen-Funktion an dem ich arbeite, mein code ist unten.
Controller
//GET: File
[Authorize(Roles = "Admin, Lecturer")]
public ActionResult Index()
{
foreach (string upload in Request.Files)
{
if (Request.Files[upload].FileName != "")
{
string path = AppDomain.CurrentDomain.BaseDirectory + "/App_Data/uploads/";
string filename = Path.GetFileName(Request.Files[upload].FileName);
Request.Files[upload].SaveAs(Path.Combine(path, filename));
}
}
return View();
}
Modell
public class UploadModel
{
[Required(ErrorMessage = "Course is required")]
public string Course { get; set; }
[Required(ErrorMessage = "Title is required")]
public string Title { get; set; }
public string Uploader { get; set; }
}
Ansicht
<div class="uploadContainer">
<table>
<tr>
<td>Title :</td>
<td colspan="2" class="editPostTitle">
@Html.TextBoxFor(tuple => tuple.Item1.Title, new { @class = "uploadTitleInp" })
@Html.ValidationMessageFor(tuple => tuple.Item1.Title)
</td>
</tr>
<tr>
<td>Course :</td>
<td>
@{
List<SelectListItem> listItems = new List<SelectListItem>();
foreach (var cat in courses)
{
listItems.Add(new SelectListItem
{
Text = cat.Course.Name,
Value = cat.Course.Name
});
}
}
@Html.DropDownListFor(tuple => tuple.Item1.Course, listItems, "-- Select Status --")
@Html.ValidationMessageFor(tuple => tuple.Item1.Course)
</td>
</tr>
<tr>
<td>File :</td>
<td>
<input type="file" name="FileUpload1" id="fileUpload" required />
</td>
</tr>
<tr>
<td></td>
<td>
<input id="btnUploadFile" type="button" value="Upload File" />
</td>
</tr>
</table>
</div>
Diese Methode ist verantwortlich für die Platzierung der hochgeladenen Datei in das Verzeichnis. Was möchte ich in der Lage sein zu tun ist, erstellen Sie eine Datei mit Namen von etwas wie dieses.
string filename = model.Title + " - " + model.Course;
Ich in der Regel wissen, wie Sie diese erreichen bei der Verwendung eines db-Daten speichern, aber da bin ich nicht die Speicherung der Dateien, die hochgeladen werden in einer db dann weiß ich nicht wirklich wissen, wie pass-Daten vom model an den controller, so kann ich die Werte, die eingetragen wurden, durch den Anwender zu konstruieren, die den Namen der Datei. Ich bin relativ neu auf diesem Rahmen, und Sprachen, so dass jede Hilfe und Hinweise wäre sehr appriciated.
Vielen Dank Im Voraus!
InformationsquelleAutor Plumbus | 2017-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Übergibt man die Daten wieder durch Ihr Modell zu einer separaten controller-Methode. Dies kann wie folgt implementiert werden (ich habe das vereinfacht deinen code ein bisschen, aber die Allgemeine Umsetzung funktionieren sollte):
Ihre Aktion zu ERHALTEN:
Dann in Ihren anzeigen hinzufügen, das Modell und verwenden Sie es in form, so dass die Daten gebunden werden, um Ihr Modell. Diese können dann senden Sie zurück zu Ihrem controller.
Erhalten nun die Werte durch ein HttpPost action-Methode im controller:
gut zu hören! Ich habe nicht genug Informationen, um dieses problem zu lösen jetzt. Wäre in der Tat am besten zu schreiben, eine eigene Frage für die ich rechne.
InformationsquelleAutor Jurjen
Gibt es zwei verschiedene Weg, um Daten zu senden
controller
. Sie müssen den Daten entsprechen, die Sie senden in derController method
Mit Der Ajax-Post-Methode :
Mit FormPost Methode
ZumBeispiel
InformationsquelleAutor Hüseyin Burak Karadag