私は次のモデルクラスを持っています:
public class BASLPAcademics
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int BASLPAcademicID { get; set; }
//[UIHint("BASLPApplicationFormModel")]
public int BASLPApplicationID { get; set; }
[ForeignKey("BASLPApplicationID")]
public virtual BASLPApplicationFormModel BASLPApplication { get; set; }
public string Subject { get; set; }
public string Physics { get; set; }
public string Chemistry { get; set; }
public string Optional { get; set; }
public int TotalMarks { get; set; }
}
およびエディターテンプレート
@model OAMS.Models.BASLPAcademics
@{
ViewBag.Title = "BASLPAcademics";
}
<tr>
<td>
@Model.Subject
@Html.HiddenFor(model=>model.BASLPAcademicID)
@Html.HiddenFor(model => model.Subject)
@Html.HiddenFor(model => model.BASLPApplication)
@Html.HiddenFor(model => model.BASLPApplicationID)
</td>
<td>
@Html.EditorFor(model => model.Physics, new { @class = "BASLPAcademics Physics" })
</td>
<td>
@Html.EditorFor(model => model.Chemistry, new { @class = "BASLPAcademics Chemistry" })
</td>
<td>
@Html.EditorFor(model => model.Optional, new { @class = "BASLPAcademics Optional" })
</td>
<td>
@Html.EditorFor(model => model.TotalMarks, new { @class = "BASLPAcademics TotalMarks" })
</td>
</tr>
および呼び出し元のエディター テンプレート
@Html.EditorFor(model => model.BaslpAcademic)
私は取得しModel.State
ていますfalse
例外エラーあり
{System.InvalidOperationException: The parameter conversion from type 'System.String' to type 'OAMS.Models.BASLPAcademics' failed because no type converter can convert between these types.
at System.Web.Mvc.ValueProviderResult.ConvertSimpleType(CultureInfo culture, Object value, Type destinationType)
at System.Web.Mvc.ValueProviderResult.UnwrapPossibleArrayType(CultureInfo culture, Object value, Type destinationType)
at System.Web.Mvc.ValueProviderResult.ConvertTo(Type type, CultureInfo culture)
at System.Web.Mvc.DefaultModelBinder.ConvertProviderResult(ModelStateDictionary modelState, String modelStateKey, ValueProviderResult valueProviderResult, Type destinationType)}
edtorTemplate 消費フォームを編集しようとしているときにエラーが発生していましたが、viewModel を試してみましたが、まったく意味がありません。モデルは正しくバインドされているように見えますが、クイック ウォッチで、「タイプ 'System.String' からタイプ 'OAMS.Models.BASLPAcademics' へのパラメーター変換が失敗したため、これらのタイプ間で変換できるタイプ コンバーターがない」というメッセージが見つかりました。これに対する正しい解決策を共有してください。
編集:フィドラーの応答
public class BASLPApplicationFormModel
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int BASLPApplicationID { get; set; }
public string BASLPApplicationNo { get; set; }
[Required]
[Display(Name = "Name of Applicant")]
public string tName { get; set; }
[DataType(DataType.Date)]
[Display(Name = "Date of Birth", Prompt = "DD/MM/YYYY")]
public DateTime DateOfBirth { get; set; }
public DateTime Created { get; set; }
public virtual List<BASLPAcademics> BaslpAcademic { get; set; }
public BASLPApplicationFormModel()
{
BaslpAcademic = new List<BASLPAcademics>();
}
}
モデル状態のキー エラーが見つかりました。
BaslpAcademic[0].BASLPApplication
BaslpAcademic[1].BASLPApplication