私が作成した2つの独立した子モデルがあり、両方の子モデルを1つのビューで使用できるようにする親モデルを作成できます。両方のモデルを含む親ビューモデル
私が遭遇している問題は、親モデルが変数にアクセスしていないことを私に知らせる私のビューからエラーが出てくることです。 "MainPageModelに定義が含まれていません..."
これからの私の最終目標は、入力を使用して1つのモデルに画像をアップロードするフォームを持つことができるようにすることです。これにより、画像付きの簡単なプロファイルが作成されます。提出すると、プロフィールがどのように見えるかで、別のビューに移動します。
MODEL 1:
namespace Profile.Models
{
public class Profiler
{
public string FName { get; set; }
public string Address { get; set; }
public string BirthDate { get; set; }
public string PhoneNumber { get; set; }
public string Comments { get; set; }
}
}
モデル2:
namespace Profile.Models
{
public interface IFormFile
{
string ContentType { get; }
string ContentDisposition { get; }
IHeaderDictionary Headers { get; }
long Length { get; }
string Name { get; }
string FileName { get; }
Stream OpenReadStream();
void CopyTo(Stream target);
Task CopyToAsync(Stream target, CancellationToken cancellationToken);
}
}
親モデル:
namespace Profile.Models
{
public class MainPageModel
{
public Profiler Profiler { get; set; }
public IFormFile IFormFile { get; set; }
public MainPageModel(Profiler Profiler)
{
Profiler = Profiler;
}
}
}
ビュー:
@model Profile.Models.MainPageModel
@{
ViewData["Title"] = "Profiler";
}
<h2>Create your Profile using the form below</h2>
<h3>On Submission, your profile will be created for you to see.</h3>
<form asp-action="Profiler" >
<label asp-for="FName"></label>
<input asp-for="FName" /> <br /><br />
<label asp-for="Address"></label>
<input asp-for="Address" /> <br /><br />
<label asp-for="BirthDate"></label>
<input asp-for="BirthDate" /> <br /><br />
<label asp-for="PhoneNumber"></label>
<input asp-for="PhoneNumber" /> <br /><br />
<label asp-for="Comments"></label>
<input asp-for="Comments" /> <br /><br />
<input type="submit" value="Submit" />
</form>
<form method="post" enctype="multipart/form-data">
<input type="file" name="files" multiple />
<input type="submit" value="Upload" />
</form>
にHomeController:
public IActionResult Profiler([Bind("FName,Address,BirthDate,PhoneNumber,Comments")] Profiler Profiles)
{
return View(new MainPageModel (Profiles));
}