我正在使用剃刀语法开发MVC3应用程序。我正在研究评论功能的部分课程。
我的代码是:
<script src="../../Scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#AddCommentButton').click(function () {
$.ajax({
type: 'post',
url: '/Comment/SaveComments',
dataType: 'json',
data:
{
'comments': $('#Comment').val(), @ViewBag.EType, @ViewBag.EId
},
success: function (data) {
$("p.p12").append
$('.ShowComments').text('Hide Comments');
}
});
});
});
</script>
我正在尝试使用上面的jQuery中的ViewBag从View向控制器发送参数,但它无法正常工作。我怎么能这样做?
答案 0 :(得分:2)
试试这样:
<script src="@Url.Content("~/Scripts/jquery.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#AddCommentButton').click(function () {
$.ajax({
type: 'post',
url: '@Url.Action("SaveComments", "Comment")',
data: {
comments: $('#Comment').val(),
etype: @Html.Raw(Json.Encode(ViewBag.EType)),
eid: @Html.Raw(Json.Encode(ViewBag.EId))
},
success: function (data) {
$("p.p12").append(data);
$('.ShowComments').text('Hide Comments');
}
});
});
});
</script>
和您的控制器操作:
[HttpPost]
public ActionResult SaveComments(string comments, string etype, string eid)
{
...
}
或定义视图模型:
public class SaveCommentViewModel
{
public string Comments { get; set; }
public string EType { get; set; }
public string EId { get; set; }
}
然后:
[HttpPost]
public ActionResult SaveComments(SaveCommentViewModel model)
{
...
}