场景是,我有一个登录用户的表单,它将调用一个动作方法。 action方法将返回true / false,具体取决于有效/无效的用户名。如果它返回false,我想要一个jquery方法来显示一条消息。我可以将值作为模型视图传递,但问题是当页面第一次被请求时,该值为null因为post没有调用post的action方法,因此它显示像对象引用这样的错误为null。如何处理这种情况。我没有给出代码,coz编码不是我的问题,我需要知道处理这个的最佳实践。感谢。
好的,这是我试过的Jquery方法。
<script type="text/javascript">
$(document).ready(function () {
(' #SignIn').click(function () {
if (@Model.test === null) //Error is showing here, on the @Model.test call
{
$(' #Message').text("Null")
}
if(@Model.test===false)
{
$(' #Message').text("Invalid");
}
});
});
</script>
答案 0 :(得分:1)
如果要从模型中的操作返回结果,则需要在POST调用后执行java脚本操作。 试试这个。
//In your Controller
[HttpGet]
public ActionResult SomeAction()
{
var model = new ModelView();
model.test = false;
return (model)
}
[HttpPost]
public ActionResult SomeAction(ModelView model)
{
if(ModelState.IsValid)
{
// write your logic here for validating user
model.test = true;
return View(model);
}
model.test = false;
return (model)
}
// In View
@model ViewModel
@if (model.test == true)
{
<script type="text/javascript">
$(document).ready(function () {
$(' #Message').text("Null")
});
</script>
}
else
{
<script type="text/javascript">
$(document).ready(function () {
$(' #Message').text("Invalid");
});
</script>
}
我已根据您的情况为您提供解决方案,但我建议您使用 Ajax.BeginForm或javascript 提交表单并从操作中返回 JSON 。