在 MVC 中更改文本框日期时 asp.net 触发控制器代码

本文关键字:net asp 代码 控制器 日期 MVC 文本 | 更新日期: 2023-09-27 18:36:12

每当用户单击显示日期的文本框时,我都需要运行一些控制器代码。我的问题是如何从 html 文本框运行控制器代码?我是一个完整的MVC菜鸟,到目前为止一直在做网络表单。例如,我的控制器代码是:

    [httppost]
    public ActionResult Availability(int id)
            { 
                //run code
            }

我有一个纯 html 文本框 - 我不允许使用 html 助手,只能使用纯 html。 我可以在javascript,jquery或使用Ajax中实现这一点吗?文本框:

<input type="text" class="form-control" id="To" name="DateTo" placeholder="To" required />

在 MVC 中更改文本框日期时 asp.net 触发控制器代码

你必须使用 AJAX。从技术上讲,这一切都发生在 Web 窗体代码的幕后隐式。MVC让你控制,而不是框架,就是一切。

所以,你只会有这样的东西:

$('input[name=DateTo]').on('blur', function () {
    $.post('/url/to/action', { date: $(this).val() }, function (response) {
        // do something with response
    });
});

几点注意事项:

  1. 您的操作采用整数id参数,但文本框的值将是日期时间。我不确定你到底在做什么,但你需要弄清楚它实际上应该是什么。

  2. 上面的代码被迫按属性选择,因为输入上没有 id。从技术上讲,这本身并没有错,但它可能不是你想要的。

  3. 我不确定为什么"不允许"您在此处使用HTML助手。要么是基于不理解框架的无知要求,要么您以某种方式认为使用 HTML 帮助程序无法完成某些事情。您可以通过以下方式生成完全相同的 HTML 位:

    @Html.TextBoxFor(m => m.DateTo, new { @class = "form-control", placeholder = "To", required = true })