我需要从URL获取ID,从文本框中获取注释值,将其保存到数据库中并在Ajax页面上显示。 我不确定应该如何在控制器和ajax函数中看起来正确的语法。
控制器
[HttpPost]
public JsonResult AddComment(int id, string comment)
{
if (ModelState.IsValid)
{
return Json(true); // what should be here
}
return Json(true);
}
Ajax
$('#submit').click(function () {
$.ajax({
url: '/Form/AddComment',
method: 'POST',
data: {
id: 4, //how to get id from url?
comment: 'test' //how to get textbox value?
},
success: function (data) {
console.log(data)
},
error: function (a, b, c) {
console.log('err')
}
})
});
这只是告诉我它有效,但是我不知道如何前进
答案 0 :(得分:2)
根据您的要求,您将必须在客户端进行适当的表单处理,以获取id
和comment
之类的变量。您可以使用强类型模型绑定来获取表单值并在提交时对其进行处理,也可以使用JavaScript技术来处理表单变量。要从网址中提取id
,可以使用Regular Expression
或其他JavaScript字符串解析技术。我给你一个简单的例子,使用JavaScript从URL中获取id
,从文本框中获取comment
:
您的输入控件如下所示:
<input type="text" id="commentBox" name="Comment" class="form-control" />
为了使用AJAX将表单变量发布到控制器中来实现所需的功能,请参考以下代码段:
AJAX:
<script type="text/javascript">
var url = 'http://www.example.com/4'; //Example URL string
var yourid = url.substring(url.lastIndexOf('/') + 1);
var yourcomment= document.getElementById('commentBox').value;
var json = {
id: yourid, //4
comment: yourcomment
};
$('#submit').click(function (){
$.ajax({
url: '@Url.Action("AddComment", "Form")',
type: "POST",
dataType: "json",
data: { "json": JSON.stringify(json)},
success: function (data) {
console.log(data)
},
error: function (data) {
console.log('err')
},
});
};
</script>
您可以像这样在Controller中获取值:
using System.Web.Script.Serialization;
[HttpPost]
public JsonResult AddComment(string json)
{
if (ModelState.IsValid)
{
var serializer = new JavaScriptSerializer();
dynamic jsondata = serializer.Deserialize(json, typeof(object));
//Get your variables here from AJAX call
string id= jsondata["id"];
string comment=jsondata["comment"];
// Do something here with your variables.
}
return Json(true);
}
答案 1 :(得分:0)
我的解决方案如下:
控制器:
[HttpPost]
public JsonResult AddComment(int id_usr,string comment)
{
if (ModelState.IsValid)
{
Comments kom = new Comments();
kom.DateComment = DateTime.Now;
kom.Id_usr = id_usr;
kom.Comment = comment;
db.Comments.Add(kom);
db.SaveChanges();
return Json(kom);
}
return Json(null);
}
查看
var url = window.location.pathname;
var idurl = url.substring(url.lastIndexOf('/') + 1);
$('#submit').click(function () {
console.log('click')
$.ajax({
url: '/form/AddComment',
method: 'POST',
data: {
comment: $("#Comments_Comment").val(),
id_usr: idurl,
},
success: function (data) {
console.log(data),
谢谢大家指导我解决问题