MVC 3 使用日期选择器更新页面

发布于 2024-10-27 01:33:06 字数 974 浏览 1 评论 0原文

我遇到了一个问题,经过 2 小时的尝试和解决错误& google 我是来问问的。

我对 Web 开发和 Ajax 都很陌生。

我有一个简单的页面,其中包含 jquery ui 的日期选择器和带有渲染操作的 div:

@using (Html.BeginForm())
{
    <div id="datepicker"></div>    
}

<h2>Lista de trabajos</h2>

<div id="trabajos">
    @Html.Action("List", "Trabajo", new { dia = Model.Fecha })
</div>

到目前为止一切顺利。我想单击数据选择器上的日期(通过脚本配置)并使用 @model 上的另一个日期再次调用此操作。

问题是,如果我使用这个:

            onSelect: function (dateText, inst) {
                $("form").submit();
            }

当我点击日期时它会完美发布,但如果我使用:

            onSelect: function (dateText, inst) {
                $("form").submit(function (e) { });
            }

它不再发布。

作为新手,我正在努力一步一步地完成它。我试图只是发布(现在没有ajax)并将新日期发送到我的控制器,所以:

我如何将数据(我认为dateText是我想要发送的)发送到我的操作(谁期待一个字符串)。当我完成该任务后,我将使用 Ajax,但如果我无法将日期发送到操作并进行刷新以获取新模型......

有什么帮助吗?

谢谢。

I have a problem and after 2 hours of try & error & google I Came here to ask.

Im pretty new to Web development and new with Ajax.

I have a simple page with a jquery ui's datepicker and a div with render an action:

@using (Html.BeginForm())
{
    <div id="datepicker"></div>    
}

<h2>Lista de trabajos</h2>

<div id="trabajos">
    @Html.Action("List", "Trabajo", new { dia = Model.Fecha })
</div>

So far so good. I want to click on a Date on the datapicker (its configured through an script) and call this action again with another date on the @model.

The problem is that if I use this:

            onSelect: function (dateText, inst) {
                $("form").submit();
            }

It post perfectly when I click on a date, but if i use:

            onSelect: function (dateText, inst) {
                $("form").submit(function (e) { });
            }

It doesn't post anymore.

As novice, Im trying to accomplish it step by step. Im trying to just post (without ajax by now) and send the new date to my controller, so:

How I send data (I think that dateText is what I want to send) to my action (Who is expecting an string). When I accomplish that I'll go to Ajax but if I can't send the date to the action and make a refresh to get a new model...

Any help?

Thanks.

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

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

发布评论

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

评论(2

朕就是辣么酷 2024-11-03 01:33:06

以下代码:

$("form").submit();

立即触发提交事件并POST到服务器。

以下代码:

$("form").submit(function (e) { 

});

只是重新定义 submit 处理程序,但不会立即提交。您需要单击提交按钮,然后将调用匿名函数(该函数为空,最终会执行正常提交,但您需要单击提交按钮)。因此,如果您想使用 AJAX:

onSelect: function (dateText, inst) {
    var form = $(form);
    $.ajax({
        url: form.attr('action'),
        type: form.attr('method'),
        data: form.serialize(),
        success: function(result) {
            // the form was successfully sent to the server using an AJAX call
            // do something with the result
        }
    });
    return false;
}

The following code:

$("form").submit();

triggers the submit event immediately and POSTs to the server.

The following code:

$("form").submit(function (e) { 

});

simply redefines the submit handler but doesn't submit immediately. You need to click on the submit button and then the anonymous function will be invoked (which is empty and would eventually perform a normal submit but you need to click on the submit button). So if you wanted to use AJAX:

onSelect: function (dateText, inst) {
    var form = $(form);
    $.ajax({
        url: form.attr('action'),
        type: form.attr('method'),
        data: form.serialize(),
        success: function(result) {
            // the form was successfully sent to the server using an AJAX call
            // do something with the result
        }
    });
    return false;
}
被你宠の有点坏 2024-11-03 01:33:06

第二种表单是为提交事件添加处理程序,而不是提交表单。如果你想使用ajax发布表单,你应该使用 post 方法。

onSelect: function (dateText, inst) {
            var $form = $('form');
            $.post( $form.attr('action'), $form.serialize(), function(result) {
               // do something with the result of the post request
            });
          }

The second form is adding a handler for the submit event, not submitting the form. If you want to post the form using ajax, you should use the post method.

onSelect: function (dateText, inst) {
            var $form = $('form');
            $.post( $form.attr('action'), $form.serialize(), function(result) {
               // do something with the result of the post request
            });
          }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文