Asp.net mvc mvc-ajax.beginform-禁用javascript时禁用

Asp.net mvc mvc-ajax.beginform-禁用javascript时禁用,asp.net-mvc,Asp.net Mvc,当用户禁用javascript时,我想让ajax.beginform不做任何事情,而不是提交一个常规的完整页面post请求。实现这一目标的正确方法是什么 如果页面中有表单标记且禁用了javascript,则无论您做什么,都可以提交。即使删除操作属性,它也会提交到同一页面。因此,您可以使用标记为禁用javascript的用户提供替代标记。另一种可能是用CSS隐藏submit按钮,并用javascript显示它(这样只有启用了JS的用户才能看到它),但这并不理想,因为在输入中键入时按Enter键仍然

当用户禁用javascript时,我想让ajax.beginform不做任何事情,而不是提交一个常规的完整页面post请求。实现这一目标的正确方法是什么

如果页面中有
表单
标记且禁用了javascript,则无论您做什么,都可以提交。即使删除
操作
属性,它也会提交到同一页面。因此,您可以使用
标记为禁用javascript的用户提供替代标记。另一种可能是用CSS隐藏submit按钮,并用javascript显示它(这样只有启用了JS的用户才能看到它),但这并不理想,因为在输入中键入时按Enter键仍然可以提交表单

我认为更好的方法是让表单定期提交请求,并在控制器操作中处理此情况并做出相应反应:

if (Request.IsAjaxRequest())
{
    // act as normal
    return PartialView();
}
else
{
    // the user had javascript disabled
    return View();
}

如果你这么看的话,当你禁用JS时,你不能投票、收藏等等。你可以点击它,但它什么都不做。可能它在幕后做了些什么。它在幕后做的是,它对按钮使用
span
,而不是
submit
按钮,并使用jQuery悄悄地将单击处理程序附加到按钮上。因此,如果用户禁用了javascript,则不会附加这些单击处理程序,因为您正在单击一个简单的
span