Classにもう1つのフィールドを追加して、コントローラとViewにいくつかの行コードを追加し、最後に答えを得ました。
ビュー:
@Html.DropDownListFor(model => model.AgentName, ViewBag.Agency as IEnumerable<SelectListItem>, "Select")
@Html.EditorFor(model => model.AgentNameNew)
@Html.ValidationMessageFor(model => model.AgentName)
コントローラー:
internationalarrival.AgentName = string.IsNullOrEmpty(internationalarrival.AgentNameNew) ? internationalarrival.AgentName : internationalarrival.AgentNameNew;
db.InternationalArrivals.Add(internationalarrival);
db.SaveChanges();
と
モデルで:
public partial class InternationalArrival
{
public decimal InternationalArrivalId { get; set; }
public string AgentName { get; set; }
public string AgentNameNew { get; set; }
[Required]
public string AgentCode { get; set; }
public Nullable<DateTime> ArrivalDate { get; set; }
[Required]
public Nullable<int> ForPAX { get; set; }
[Required]
public Nullable<int> IndPAX { get; set; }
}
2つのフォームコントロールを同じプロパティにバインドすることはできません(「DefaultModelBinder」は最初のフォームコントロールのみをバインドします)。別のプロパティを持つビューモデルを作成する –
投稿された値が 'DropDownListFor'ではなく' EditorFor'であると思われます。モデルバインディングごとに、最初のヘルパーがポストされ、同じviewmodelプロパティを持つ他のヘルパーは無視されます。両方のヘルパーに別々のプロパティを使用します。 –