Asp.net mvc 4 MVC4中的HttpPost方法未返回正确的视图
在我的一个视图中,即记分控制器的索引视图中,我显示了一些图像,并使用javascript使它们可以单击。单击图像后,我填充一个数组。一旦用户单击submit按钮,数组将作为字符串传递给计分控制器中的Score方法。在这种方法中,我能够设置所有数据,当我使用Chrome调试器查看Networks选项卡时,新的“score”视图似乎正在呈现……但当我查看实际的浏览器时,没有显示任何新的内容。我仍然看到与以前相同的图像列表。为什么我的视图不能正确渲染 Scoring/Index.cshtml jsAsp.net mvc 4 MVC4中的HttpPost方法未返回正确的视图,asp.net-mvc-4,view,return,http-post,Asp.net Mvc 4,View,Return,Http Post,在我的一个视图中,即记分控制器的索引视图中,我显示了一些图像,并使用javascript使它们可以单击。单击图像后,我填充一个数组。一旦用户单击submit按钮,数组将作为字符串传递给计分控制器中的Score方法。在这种方法中,我能够设置所有数据,当我使用Chrome调试器查看Networks选项卡时,新的“score”视图似乎正在呈现……但当我查看实际的浏览器时,没有显示任何新的内容。我仍然看到与以前相同的图像列表。为什么我的视图不能正确渲染 Scoring/Index.cshtml js $
$(document).ready(function () {
$(function () {
$("img").click(function () {
// Add and remove border for image
if ($(this).hasClass('selectedCard')) {
$(this).removeClass('selectedCard');
for (var i = 0, len = cardIdList.length; i < len; i++) {
if (cardIdList[i] === $(this).attr('id')) {
cardIdList.splice(i, 1);
alert(cardIdList.toString());
break;
}
}
}
else
{
$(this).addClass('selectedCard');
var id = $(this).attr('id');
cardIdList = ( typeof cardIdList != 'undefined' && cardIdList instanceof Array ) ? cardIdList : [];
cardIdList.push(id);
alert(cardIdList.toString());
}
});
$(".button").on('click', function () {
$.post("@Url.Action("Score", "Scoring")", { CardIds: cardIdList.toString()});
});
});
});
@{
ViewBag.Title=“Score”;
}
@for(int i=0,len=@Model.Deck.Count;i
您正在使用$发出AJAX请求。post
但没有对响应执行任何操作。也许您打算为您的$提供成功
回调。post
调用(或调用传递回调的.done()
方法)
请参阅:原来我是在将“视图”返回到post方法……你是对的,我没有用它做任何事情。我本以为它会渲染视图……但我最终在上一个视图的div中显示了它。非常感谢。
public ActionResult Index()
{
var cards = cardDB.Cards.ToList();
return View(cards);
}
[HttpPost]
public ActionResult Score(string CardIds)
{
// splits up CardIds string into List
List<string> cardIdList = new List<string>();
cardIdList.AddRange(CardIds.Split(new char[] { ',' }));
CardDeck deckToScore = new CardDeck();
List<Card> cardsToAdd = new List<Card>();
for (int i = 0, len = cardIdList.Count(); i < len; i++)
{
var card = cardDB.Cards.Find(Convert.ToInt32(cardIdList[i]));
cardsToAdd.Add(card);
}
deckToScore.Deck = cardsToAdd;
return View(deckToScore);
}
}
@model GoStopPrimer.Models.CardDeck
@for (int i = 0, len = @Model.Deck.Count; i < len; i++)
{
<img alt= @Model.Deck[i].Name, src= @Model.Deck[i].CardArtUrl id= @Model.Deck[i].CardId />
}