我在DoComment.ascx
中有一个表单:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DT.KazBilet.Objects.PublicationComment>" %>
<div class="wrap">
<h4>Comment</h4>
<%using (Ajax.BeginForm("DoComment", "Publication", new {id = Model.Publication.OID, parentId = Model.OID},new AjaxOptions()))
{%>
<%=Html.TextAreaFor(x=>x.Text) %>
<%-- <textarea style="width: 100%; height: 152px;"></textarea>--%>
<input type="submit" value="Publish" class="btn ok_btn" />
<%}%>
</div>
这是我的控制者的行动:
public JsonResult DoComment(PublicationComment model, int id, int parentId)
{
PublicationRepository.SaveComment(User.Identity.Name,id, parentId, model.Text);
return Json(new {
Message = "You comment on moderation"
});
}
我希望用户点击“发布”按钮,然后显示弹出窗口,其中将显示来自Message
的文本。
你能帮我(一些代码)吗?
感谢。
答案 0 :(得分:1)
您可以在AJAX选项中订阅OnSuccess
javascript事件,然后以您喜欢的方式显示您已检索到的JSON结果(新窗口,div,...):
<% using (Ajax.BeginForm(
"DoComment",
"Publication",
new { id = Model.Publication.OID, parentId = Model.OID },
new AjaxOptions { OnSuccess = "onSuccess" })
) %>
然后你将定义onSuccess
javascript函数。根据您使用的是jQuery还是MicrosoftAjax,此函数的实现可能略有不同,更具体地说,是检索JSON结果的方式。
例如,如果您使用的是MicrosoftAjax(现已废弃):
var onSuccess = function(e) {
var json = e.get_response().get_object();
alert(json.Message);
};
如果你是jQuery:
var onSuccess = function(json) {
alert(json.Message);
};