我正在尝试,因为标题说在验证后将一个Json消息从Controller返回到View。
我已经创建了一个断点,我知道代码可以从Controller端运行,而我的JavaScript现在调用ActionResult成功了。如何在视图中显示该消息?
有两个按钮,印章和印章。如果用户加盖两次,则应该收到一条消息,同时标记为冲突。除了一些消息和字符串更改外,我有两个ActionResults。
控制器:
[HttpPost]
public ActionResult CreateStamp(Stamping stampingmodel)
{
var validateMsg = "";
stampingmodel.Timestamp = DateTime.Now;
stampingmodel.StampingType = "in";
if (stampingmodel.User == null || ModelState.IsValid)
{
var idValidated = db.Users.Find(model.UserId);
if (idValidated != null)
{
var stamp =
db.Stampings.Where(s => s.UserId == stampingmodel.UserId)
.OrderByDescending(s => s.Timestamp)
.FirstOrDefault();
if (stamp.StampingType == stampingmodel.StampingType)
{
if (stampingmodel.StampingType == "in")
{
validateMsg = "Stamped Twice In A Row!";
}
}
else
{
if (stampingmodel.StampingType == "in")
{
validateMsg = "Stamped In, Welcome.";
}
}
}
db.Stampings.Add(stampingmodel);
db.SaveChanges();
}
return Json(new {Message = validateMsg });
JavaScript的:
$(document).ready(function () {
$("#stampInBtn").click(function () {
var userId = $("#userId").val();
$.ajax({
url: "ComeAndGo/CreateStamp",
type: "POST",
dataType: "json",
data: {
userId: userId,
}
});
});
查看:
<input type="text" id="idUser" class="form-control" />
<br />
<input type="submit" value="IN" id="stampInBtn" />
我在View中有更多代码; div,head,body,title和scripts。但它可能有点无关紧要。
如何成功展示这些讯息?
问候。
答案 0 :(得分:1)
向ajax调用添加成功函数
$.ajax({
url: "ComeAndGo/CreateStamp",
type: "POST",
dataType: "json",
data: { userId: userId },
success: function(data) {
// data contains the value returned by the server
console.log(data);
}
});
所以如果控制器返回
return Json("This is a message");
data
的值将是&#34;这是一条消息&#34; 。请注意,返回值可以是复杂类型或部分视图
答案 1 :(得分:0)
您获得$("#userId")
的值,但您的输入的ID为idUser
。
尝试输入:
<input type="text" id="userId" class="form-control" />
同样提供Stamping
模型结构也是一个好主意,因为您似乎只在帖子中传递了用户ID而没有其他内容。
答案 2 :(得分:0)
更改您的javascript代码如下:
$(document).ready(function () {
$("#stampInBtn").click(function () {
var userId = $("#userId").val();
$.ajax({
url: "ComeAndGo/CreateStamp",
type: "POST",
dataType: "json",
data: {
userId: userId,
},
success: function(data) {
var objData= jQuery.parseJSON(data);
alert(objData.Message );
},
error: function (request, status, error) {
alert(request.responseText);
}
});
});
});