私は作業中のアップロードファイル機能のファイル名を作成するために、ビューからデータを送信してコントローラ内で使用しようとしています。Viewから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();
}
モデル
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; }
}
ビュー
<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>
このメソッドは、PLACのために責任がありますディレクトリにアップロードされたファイルを削除します。私ができるようにしたいのは、このようなことをしてファイル名を作成することです。
string filename = model.Title + " - " + model.Course;
私は通常、データを格納するDBを使用する際にこれを達成する方法を知っているが、私はデシベルでアップロードされたファイルを格納しておりませんので、その後、私は本当ににモデルデータを渡す方法がわかりません私はユーザーがファイル名を構成するために入力した値を使用することができます。私はこのフレームワークと言語に対して比較的新しいので、どんな助けと指針も大きく訴えるでしょう。
ありがとうございます!
チェックこのアウト:http://stackoverflow.com/questions/16339398/mvc4-passing-model-from-view-to-controller それは – Javier