是否可以将通用模型从 ajax 调用传递给 JsonResult 操作?

发布于 2024-12-01 21:26:14 字数 921 浏览 3 评论 0原文

我正在创建一个 javascript 函数,它将调用 ajax 调用来验证表单的模型。

function ValidateModel(formID) {
    $.ajax({
        url: '/Custom/ValidateModel',
        type: 'POST',
        data: $('#' + formID).serialize(),
        dataType: 'json',
        processData: false,
        success: function (data) {

        // code remove for brevity  

        }
    });
}

这将由 CustomController 中的此操作处理。

[HttpPost]
    public ActionResult ValidateModel(CustomModel model)
    {          
            if (!ModelState.IsValid)
            {
                 // code remove for brevity
            }
            return Json(customObject, JsonRequestBehavior.DenyGet);

    }

如果我将传递带有 CustomModel 对象的表单,则自动绑定工作得很好。我想在服务器上创建一个通用处理程序来验证模型。我想用这样的东西来实现它:

public ActionResult ValidateModel(GenericModel model)
{

}

这样我就可以在服务器上传递具有不同模型类型的不同表单。

谢谢!

I'm creating a javascript function that will invoke ajax call to validate the model of a form.

function ValidateModel(formID) {
    $.ajax({
        url: '/Custom/ValidateModel',
        type: 'POST',
        data: $('#' + formID).serialize(),
        dataType: 'json',
        processData: false,
        success: function (data) {

        // code remove for brevity  

        }
    });
}

That will be handled by this Action in the CustomController

[HttpPost]
    public ActionResult ValidateModel(CustomModel model)
    {          
            if (!ModelState.IsValid)
            {
                 // code remove for brevity
            }
            return Json(customObject, JsonRequestBehavior.DenyGet);

    }

If I will pass a form with CustomModel object the auto binding works just fine. What I want to create is a generic handler on the server to validate the model. I want to achieve it with something like this:

public ActionResult ValidateModel(GenericModel model)
{

}

so that when I can pass different forms with different model types on the server.

thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过气美图社 2024-12-08 21:26:14

您可以使用所有模型都实现并具有的接口吗?

public ActionResult ValidateModel(IViewModel model)
{

}

您可以传递实现 IViewModel 接口的任何模型。

或者也许您可以使用抽象基类?

Could you use an interface that all your models implement and have

public ActionResult ValidateModel(IViewModel model)
{

}

You'd be able to pass any model that implements the IViewModel interface.

Or maybe you could use an abstract base class?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文