ビューから ajax リクエストを作成しようとしています。これにより、同時にいくつかのデータが投稿および取得されます。取得したデータを使用して、そのビュー ページの div コンテンツを更新したいと考えています。コードは次のとおりです。
私の見解:
<div id="NewComment" style="height: auto; width: 850px; background-color: Silver;
margin-top: 10px;">
@{
AjaxOptions ajaxopts = new AjaxOptions { UpdateTargetId = "Comments" };
}
@using (Ajax.BeginForm("NewComment", ajaxopts))
{
@Html.ValidationSummary()
<span style="margin-left: 10px">
@Html.TextAreaFor(x => x.Comments.Comments, new { @class = "Comment" })
</span>
@Html.TextBoxFor(x => x.Posts.PostID, new { @class = "PID" })
<br />
<span style="margin-left: 10px">
<input type="submit" value="Post" style="height: 50px; width: 100px; text-align: center;
font-size: larger" /></span>
}
</div>
<div id="Comments">
@{
if (Model.CommentList != null)
{
foreach (var y in Model.CommentList)
{
<div id="DisplayComment" style="height: auto; width: 500px; background-color: #559988;
margin-top: 10px; margin-left: 10px;">
@y.UserName says:
<br />
@y.Comment1
<br />
</div>
}
}
else
{
<div id="DisplayNoComment" style="height: auto; width: 500px; background-color: Yellow;
margin-top: 10px; margin-left: 10px;">
@Html.Label("Be First to make a comment")
</div>
}
}
</div>
私のコントローラー:
[HttpPost]
public ActionResult NewComment(PostComment model)
{
var business = new Business();
var entity = new Comment();
//**For inserting comments
entity.Comment1 = model.Comments.Comments;
entity.PostID = model.Posts.PostID;
entity.UserID = business.GetUserID(User.Identity.Name);
entity.UserName = User.Identity.Name;
business.PostComment(entity);
//For inserting comments**
//**for getting comments
var viewmodel = new PostComment();
if (business.GetAllComment(model.Posts.PostID) == null)
{
}
else
{
viewmodel.CommentList = business.GetAllComment(model.Posts.PostID);
}
//for getting comments**
return View("Comments", viewmodel);
}
必要なデータを含むコメントという名前の部分ビューを返しています。すべて正常に動作していますが、有線の問題があります。部分ビューでマスターページを使用していませんが、マスターページからコンテンツを表示しています。したがって、ヘッダーとフッターのようなマスターページのコンテンツを2回表示する元のビューページ。助けてください。