Asp.net mvc MVC-使用文本框获取日期

Asp.net mvc MVC-使用文本框获取日期,asp.net-mvc,razor,Asp.net Mvc,Razor,我想在mvc中使用文本框或编辑器获取两个日期字符串。 格式应该是 "MM/yyyy-MM/yyyy". 我需要强制用户输入上述格式的输入,而不张贴模型 @Html.TextBox("tbxDateRange", "", "{0:dd/MM/yyyy}", new { @class = "form-control dropdown", placeholder = "MM/yyyy - MM/yyyy" }) 上面的代码不起作用事件只获取一个格式化的日期字符串。格式按预期工作。您正在告诉tbxD

我想在mvc中使用文本框或编辑器获取两个日期字符串。 格式应该是

"MM/yyyy-MM/yyyy".
我需要强制用户输入上述格式的输入,而不张贴模型

@Html.TextBox("tbxDateRange", "", "{0:dd/MM/yyyy}", new { @class = "form-control dropdown", placeholder = "MM/yyyy - MM/yyyy" })

上面的代码不起作用事件只获取一个格式化的日期字符串。

格式按预期工作。您正在告诉tbxDateRange的值(第三个参数(
“{0:dd/MM/yyyyy}”
)以天/月/年的格式设置。因此,它将在文本框中输入并以该格式显示

它只是一种显示格式。它不会强制执行此格式。为此,您需要执行自己的客户端javascript(因为您没有发布模型)。您可以使用屏蔽输入元素。ASP.NET MVC没有现成的屏蔽输入

您可以使用一个屏蔽输入控件,就像jQuery的插件一样

另外,你可能想把它分解成两个控件,一个用于开始,另一个用于结束。你可以考虑使用HTML5输入类型的日期,并且你会自动得到日历。但是,如果一个月的日子对于你的用户/ UI来说太混乱了,那么你可以看看使用jQuery UI,你可以将其绘制为仅显示月份和年份

在应用程序中包含jQuery UI后,您将执行以下操作

在该示例中,获胜答案将控件格式化为仅显示控件的月份和年份项

<script type="text/javascript">
    $(function() {
        $('.date-picker').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM yy',
        onClose: function(dateText, inst) { 
            $(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));
        }
        });
    });
</script>
<style>
.ui-datepicker-calendar {
    display: none;
}
</style>

$(函数(){
$('.date picker')。日期选择器({
变化月:对,
变化年:是的,
showButtonPanel:是的,
日期格式:“MM yy”,
onClose:函数(dateText,inst){
$(此).datepicker('setDate',新日期(inst.selectedYear,inst.selectedMonth,1));
}
});
});
.ui日期选择器日历{
显示:无;
}

您希望以这种方式执行此操作的具体原因是什么?您将如何验证用户输入的内容?我的意思是,我想正则表达式可以工作,但为什么不给用户两个文本框并允许用户在每个文本框中输入日期呢?