gpt4 book ai didi

asp.net-mvc-4 - 通过 Ajax 或 MVC Controller 设置强类型 View ?

转载 作者:行者123 更新时间:2023-12-02 04:56:51 25 4
gpt4 key购买 nike

我是 MVC 的新手,我们正在构建一个 MVC 应用程序,该应用程序具有 Razor View 和 Web API Controller ,用于从存储库层获取数据。

现在,我们有一个登录屏幕,在成功验证后,我们希望将用户重定向到强类型的帐户页面。为了验证凭据,我们在单击按钮时进行 Ajax 调用,并根据结果显示错误消息或在 Ajax 的成功方法中执行重定向。

$.ajax({
type: 'post',
url: '/api/User/Authenticate',
datatype: 'json',
success: function (isValid) {
if (isValid)
window.location.href = "/User/Account";
},
failure: OnFailure
});

我们对重定向和数据获取的实现感到困惑。如前所述,帐户页面是带有“UserAccount”实体的强类型 View 。我想填充这个实体,然后直接将它发送到帐户页面,以便我可以强大地使用模型绑定(bind)的功能。

我们找到了两种方法来做到这一点:

  1. 调用属于帐户页面的 MVC Controller 内的 Web API Controller 。

     public ActionResult Account()
    {
    AccountsAPIController account = new AccountsAPIController();
    UserAccount userAccount = account.GetAccountsDetails(234);
    return View(userAccount);
    }
  2. 加载帐户页面上的数据,然后手动将每个实体属性分配给相应的控件。这可行,但它忽略了强类型 View 的概念。

     $.ajax({
    type: 'get',
    url: '/api/AccountsAPI/ GetAccountsDetails,
    datatype: 'json',
    data: {'userID': 234},
    contentType: 'application/json; ',
    success: function (data) {

    // Assign data value to each and every control
    $('#First_Name').val(data.First_Name);
    $('#Phone_Number').val(data.Phone_Number);
    // ..
    },
    failure: OnFailure
    });

请建议哪种方法是正确的,或者是否有任何我们可以采用的标准方法。

感谢您的宝贵时间。

最佳答案

我发现自己又提到了这个 article on CodeProject多次(文章太大,无法在此处复制)。

它向您展示了如何使用 Html.BeginForm() 在页面上创建一个普通表单,然后如何将其转换为使用 Ajax.BeginForm()。这允许您使用 AJAX 提交页面的一小部分,同时仍然能够使用强类型模型、模型绑定(bind)和 MVC 的所有模型验证属性优点(包括所有 Html.TextBoxFor()Html.ValidationMessageFor() 助手等)。

关于asp.net-mvc-4 - 通过 Ajax 或 MVC Controller 设置强类型 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20993951/

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