コントローラによってデフォルト値が指定されたTextArea
ボックスを生成しようとしています。値レンダリングの空のボックスを持つMVC TextAreaFor
@{
Html.RenderAction(
"ContentBlock", "ContentBlock",
new TestSiteMvc.Models.ContentModel() { ContentID = 3 }
);
}
部分図:
は@Html.TextBoxFor(m=>m.Title)
@Model.ContentHtml<br />
@Html.TextAreaFor(m => m.ContentHtml)
@Html.TextBoxFor(m => m.ContentHtml)
@Html.TextArea("ContentHtml2", Model.ContentHtml)
@Model.ContentHtml<br />
レンダリング結果のHTMLは次のとおりです。
<input id="Title" name="Title" type="text" value="Home Title" />
Home Page Content<br />
<textarea cols="20" id="ContentHtml" name="ContentHtml" rows="2"></textarea>
<input id="ContentHtml" name="ContentHtml" type="text" value="Home Page Content" />
<textarea cols="20" id="ContentHtml2" name="ContentHtml2" rows="2">Home Page Content</textarea>
Home Page Content<br />
だから、ContentHtmlプロパティが読み込まなっている明らかだ部分図を呼び出してこのマークアップを考えます。私が理解していないのは、TextAreaFor
が空の値でレンダリングされている理由です。そして、明確にするために、同じIDを持つタグが付かないように、@Html.TextBoxFor(m => m.ContentHtml)
という行を削除すると、問題は解決されません。
コントローラー:
[HttpGet]
public ActionResult ContentBlock(Models.ContentModel mcontent) {
mcontent = new Models.ContentModel() {
ContentID = 3,
ContentHtml = "Home Page Content",
Title = "Home Title" };
return PartialView(mcontent);
}
モデル:
public class ContentModel {
public int ContentID { get; set; }
public string Link { get; set; }
public string Title { get; set; }
public string ContentHtml { get; set; }
public DateTime LastModifiedDate { get; set; }
}
これはまったく複製できません。 –
コントローラコードはどこですか?問題の特定のviewmodelプロパティを使用してビューコードをテストし、それが機能しました、あなたは、テキストエリアのデフォルト値の問題をクリアするコントローラアクションメソッドを提供する必要があります。 –
@ TetsuyaYamamoto、コントローラといくつかの追加コードを追加しました。ありがとう。 – InbetweenWeekends