取得しています: タイプ 'System.String' からタイプ 'System.Web.Mvc.SelectListItem' へのパラメーター変換に失敗しました。これは、タイプ コンバーターがこれらのタイプ間で変換できないためです。 コントローラーにフォームを投稿するときのエラー、以下は私が使用しているコードです:
モデル
public IList<SelectListItem> Gender { get; set; }
public IList<SelectListItem> Disablity { get; set; }
コントローラ
public ActionResult Index()
{
FormViewModel objStudentModel = new FormViewModel();
List<SelectListItem> genderNames = new List<SelectListItem>();
genderNames.Add(new SelectListItem { Text = "Male", Value = "1" });
genderNames.Add(new SelectListItem { Text = "Female", Value = "2" });
genderNames.Add(new SelectListItem { Text = "Prefer not to say", Value = "3" });
objStudentModel.Gender = genderNames1;
objStudentModel.Disablity = genderNames1;
return PartialView("ApplicationForm", objStudentModel);
}
[HttpPost]
public ActionResult HandleFormSubmit(string[] gender, string[] disability, FormViewModel model)
{
//model not valid, do not save, but return current umbraco page
if (ModelState.IsValid == false) // this always comes false
{
return CurrentUmbracoPage();
}
string form = "Values + Environment.NewLine;"
if (gender != null)
{ form += "Gender: " + gender[0] + Environment.NewLine; }
else
{ form += "Gender: " + "Prefer not to say" + Environment.NewLine; }
if (disability != null)
{ form += "Disability: " + disability[0] + Environment.NewLine; }
else
{ form += "Disability: " + "Prefer not to say" + Environment.NewLine; }
return RedirectToCurrentUmbracoPage();
}
意見
using (Html.BeginUmbracoForm<FormSurfaceController>("HandleFormSubmit"))
{
//var errors = ModelState.Values.SelectMany(v => v.Errors);
@Html.ValidationSummary();
<div class="col-12 col-sm-12 col-lg-12 ">
<label>Are you:</label>
@foreach (var names1 in @Model.Gender)
{
var tdId = "rd" + names1.Value;
<input type="radio" id="@tdId" class="chkclass" value="@names1.Text" name="gender" style="padding-right:5px;"/>
@names1.Text
}
</div>
</div>
<div class="col-12 col-sm-12 col-lg-12 ">
@foreach (var names in @Model.Disablity)
{
var tdId = "rd" + names.Value;
<input type="radio" id="@names.Value" class="chkclass" value="@names.Text" name="disability" style="padding-right:5px;"/>
@names.Text
}
</div>}
Visual stdio を使用してデバッグしましたが、モデル状態に失敗している性別リストでエラーが生成されています。私が間違っているアイデアはすべて、アプローチ内で可能なすべての解決策を試しましたが、成功しませんでした。
ありがとう