自分のコントローラから自分のビューにメッセージを表示したいが、何も起こらない。 ViewBag.Messageを使用してメッセージを表示しています。私は自分のコードで間違いを犯しているのか、これが正しい方法ではないのか分かりません。これは私のコードです:表示するメッセージを表示する
コントローラー:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id_IngresoM,Id_Componente,Lote,Serie,Cantidad,Id_Usuario")] IngresoMateriales ingresoMateriales)
{
var user = "1ef69472-1b7d-460d-a6f9-9d458c5e314e";
string msj = "";
try
{
var affectedRows = db.Database.ExecuteSqlCommand("IngresoMaterialesInspeccion @IdComponente, @Lote, @Serie, @Cantidad, @IdUsuario",
new SqlParameter("@IdComponente", ingresoMateriales.Id_Componente),
new SqlParameter("@Lote", ingresoMateriales.Lote),
new SqlParameter("@Serie", ingresoMateriales.Serie),
new SqlParameter("@Cantidad", ingresoMateriales.Cantidad),
new SqlParameter("@IdUsuario", user));
//ModelState.AddModelError("", "El Certificado no esta Vigente");
if (affectedRows == '3')
{
msj = "El Certificado no esta Vigente";
}
else if (affectedRows == '2')
{
msj = "El Componente esta libre de Inspeccion";
}
else if (affectedRows == '1')
{
msj = "Componente Sospechoso";
}
else
{
msj = "Pues nada";
}
ViewBag.Message = msj;
return RedirectToAction("Create");
}
catch (SqlException ex)
{
foreach (SqlError Error in ex.Errors)
{
return new JavaScriptResult { Script = Error.ToString() };
}
}
ViewBag.Message = msj; ------------------------------
return View();
}
ビュー:
<div class="form-group">
@Html.LabelFor(model => model.Serie, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input class="form-control" type="text" id="Serie" name="Serie" onkeypress="FunctionS(event)" />
@Html.ValidationMessageFor(model => model.Serie, "", new { @class = "text-danger" })
</div>
</div>
@if (ViewBag.Message != null)
{
<script type="text/javascript">
window.onload = function() {
alert("@ViewBag.Message"); ---------------------
};
</script>
}
</div>
リダイレクトすると、「ViewBag.Message」に値を割り当てるポイントがありません。 –