首先,给我们需要跳转的a标签链接新增一个click事件,例子:
<td>
<a href="/FstInspctAdCheck/ZbYzCheck?order=@Html.DisplayFor(modelItem => item.produce_order)&&wlCode=@Html.DisplayFor(modelItem => item.product_code)"
onclick="return Check('@Html.DisplayFor(modelItem => item.zz_order)','@Html.DisplayFor(modelItem => item.plan_num)','@Html.DisplayFor(modelItem => item.plan_date)')">主板组预装段</a>
</td>
接着,编写判断逻辑的函数,调用后台代码,根据返回值判断是否跳转页面,例子:
function Check(zz_order, plan_num, plan_date) {
var flag = false;
$.ajax({
type: "post",
url: "/FstInspctAdCheck/CheckYzIsReceiving",
data: {
'zz_order': zz_order,
'number': plan_num,
'date': plan_date
},
async: false,
success: function (data) {
console.log(data);
if (data=="True") {
flag = true;
}
else {
alert('未领用该主板,无法进行首检核对!');
flag = false;
}
}
});
console.log(flag);
return flag;
}
前面提到的后台方法如下:
/// <summary>
/// 检查主板预装段的主板是否被领用,未领用则不可进行首检核对
/// </summary>
/// <param name="zz_order"></param>
/// <param name="number"></param>
/// <param name="date"></param>
/// <returns></returns>
public bool CheckYzIsReceiving(string zz_order, string number, string date)
{
bool flag = false;
//获取当前的主板编码
string code = service.GetPlanZb(zz_order, number, date);
if (!String.IsNullOrEmpty(code))
{
Context context = new Context();
FirstinspectionA list = new FirstinspectionA();
//找出对应的主板
list = context.FirstinspectionAccounts.Where(f => f.ModelCode == code).FirstOrDefault();
if (list != null)
{
if (list.ReceivingTeam == "未领用")
{
flag = false;
}
else
{
flag = true;
}
}
}
return flag;
}
注意一个点:后台返回值为bool类型,回传到前端页面得到的是字符串类型,从而你在判断返回值后是否跳转时,如果报错或者其他因素导致的不响应情况有可能就是这个值类型的改变。