gpt4 book ai didi

json - MVC3 Ajax.ActionLink 导致文件打开对话框

转载 作者:行者123 更新时间:2023-12-04 06:12:54 24 4
gpt4 key购买 nike

我有一个定义了以下 Ajax.ActionLink 的 View

@Ajax.ActionLink(@Model.Game.VisitorTeam.FullName, "SelectTeam", new { gameID = @Model.Game.GameID, pickID = @Model.Game.VisitorTeam.TeamID }, new AjaxOptions { HttpMethod = "POST", OnSuccess = "pickMade" }, new { id = "vpick-" + @Model.Game.GameID });

这是在我的 Controller 中定义的 Action。
public JsonResult SelectTeam(int gameID, int pickID) {
var user = Membership.GetUser(User.Identity.Name);
var message = "Pick Submitted";
var userID = (Guid) user.ProviderUserKey;
_pickService.SubmitPick(userID, gameID, pickID);

return Json(new {id = gameID, teamID = pickID, message}, JsonRequestBehavior.AllowGet);

}

当我单击页面上的链接时,它会很好地发回 Controller 中的 Action,执行代码并返回 Json 结果。但是,一旦客户端得到结果,浏览器就会打开一个“另存为”对话框。如果我保存文件,它是我的 Json 结果,按预期返回。我不知道为什么没有调用我的“pickMade”函数来处理回发的结果。

在我的另一个应用程序中,我使用了 [AcceptVerbs(HttpVerbs.Post)] 属性。但是,如果我在此应用程序中尝试此操作,则在从我的 View 调用操作时会收到 404 错误。如果删除该属性,则必须将 JsonRequestBehavior.AllowGet 添加到我的返回值中。

我在另一个应用程序中有非常相似的功能,它工作正常。我不确定发生了什么,所以任何帮助表示赞赏。

最佳答案

您有 2 个解决方案(我猜)。

第一个解决方案(不是最好的):

1/在您的 Web.config 中停用 Unobtrusive Javascript

<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="false" />
</appSettings>

2/包括MicrosoftAjax.js 和MicrosoftMvcAjax.js 脚本文件
<script src="@Url.Content("~/Scripts/MicrosoftAjax.debug.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.debug.js")" type="text/javascript"></script>

第二种解决方案(更好):

1/保持不显眼的 Javascript 启用(默认情况下)
  <appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

2/包含 jquery-unobtrusive javascript 文件。
  <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>

已经多次遇到这个问题,我一直在工作:/!

关于json - MVC3 Ajax.ActionLink 导致文件打开对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7559010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com