实际上我有一个控制器动作,它从模型中的函数获取变量'result'的值。行动如下。
if (model.buildingID == 0)
{
var result = objAddBuildingBusinessModel.AddBuilding(model, connectionstring,isUnique);
}
else
{
var result = objAddBuildingBusinessModel.UpdateBuilding(model, connectionstring);
}
所以现在基于变量'result'的值,如果变量'result'的值为false,我必须在视图中显示错误消息。我应该在哪里显示它,我该怎么做。请帮助我,因为我是MVC的新手
答案 0 :(得分:1)
在 viewbag 中存储结果输出,在视图端检查viewbag值并显示错误消息:
注意: ViewBag将保留您的单个查看请求的变量
<强>控制器:强>
ViewBag.Result=result;
查看:强>
@if(ViewBag.Result)
{
//Eroor Message HTML
}
<强> JQuery的/使用Javascript:强>
$(document).ready(function () {
if (String('@ViewBag.Result').toUpperCase() == "TRUE")
{
alert('Error Message');
}
});
答案 1 :(得分:0)
我认为,您可以创建一个模型来保存相同的信息,然后发送数据以查看任何传输方法并显示异常。
<强> EnumClass 强>
创建类EnumDefinitions。您可以在此课程中使用所有枚举 内。在命名空间中写下所有枚举。你可以访问它
OperationEnum.FAIL
或OperationEnum.SUCCESS
[Obsolete("Dont Use", true)]
internal static class EnumDefinitions
{
// dont use this.
}
/// <summary>
/// Operation Enums
/// </summary>
public enum OperationEnum
{
FAIL = 0,
SUCCESS = 1,
}
创建模型
public class OperationResult
{
/// <summary>
/// Operation fail code
/// </summary>
public static string FAIL = "0";
/// <summary>
/// Operation success code
/// </summary>
public static string SUCCESS = "1";
/// <summary>
/// 1 : Success
/// 0 : Fail
/// Maybe you can use Enum to set ResultCode.
/// </summary>
public string ResultCode { get; set; }
/// <summary>
/// Exception message
/// </summary>
public string ResultMessage { get; set; }
}
捕获例外
在try catch块中使用代码并捕获异常。使用任何数据传输方法(ViewBag,vs vs)或使用jsonResult
发送数据进行查看
OperationResult resultData = new OperationResult();
try
{
if (model.buildingID == 0)
{
var result = objAddBuildingBusinessModel.AddBuilding(model, connectionstring,isUnique);
}
else
{
var result = objAddBuildingBusinessModel.UpdateBuilding(model, connectionstring);
}
//resultData.ResultCode = OperationResult.SUCCESS;
resultData.ResultCode = (int)OperationEnum.SUCCESS;
resultData.ResultMessage = "Opetaion Success";
}
catch(Exception ex)
{
//resultData.ResultCode = OperationResult.FAIL;
resultData.ResultCode = (int)OperationEnum.FAIL;
resultData.ResultMessage = ex.Message;
}
// return resultData on viewBag or andy transafer data to view
ViewBag.ResultData = resultData;
显示例外
最佳实践获取Enum的操作值(成功或失败) 如果使用枚举值,您可以使用硬编码或使用枚举值作为示例 这样你就可以在两边达到相同的枚举值
if ('@ViewBag.ResultData.ResultCode' == '@(int)OperationEnum.FAIL') // or "2"
{
var exMessage = '@ViewBag.ResultData.ResultMessage';
alert(exMessage );
}
答案 2 :(得分:0)
首先使用Viewbag
ViewBag.ans = "result";
然后在模型部分
@model IEnumerable<MVCApp.Models.ModelName>
<b>Result:</b> @ViewBag.ans<br />