مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

صدا زدن تابع javascript داخل mvc controller

شنبه, 04 اسفند 1397 19:39

صدا زدن تابع javascript داخل mvc controller

سلام دوستان 

این کد سمت view من هست :

 

<script type="text/javascript">

		function ShowNotification(msg, type) {
			setTimeout(function () {
				toastr.options = {
					closeButton: true,
					progressBar: true,
					showMethod: 'slideDown',
					positionClass: 'toast-top-left',
					timeOut: 10000
				};
				switch (type) {
					case "success":
						toastr.success(msg);
						break;
					case "info":
						toastr.info(msg);
						break;
					case "warning":
						toastr.warning(msg);
				}
			}, 300);
		}
	</script>

	@if (ViewBag.JavaScriptFunction != null)
	{
		<script type="text/javascript">
            @Html.Raw(ViewBag.JavaScriptFunction)
		</script>
	}

و این هم کد سمت controller 

[HttpPost]
		public ActionResult DoJsTreeOperation(JsTreeOperationData data)
		{
			switch (data.Operation)
			{
				case JsTreeOperation.CopyNode:
				case JsTreeOperation.CreateNode:
					int newId = _repo.CreateNode(int.Parse(data.ParentId), data.Text.ToString());
					ViewBag.JavaScriptFunction = string.Format("ShowNotification('{0}','{1}');", "hi", "success");
					return Json(new { id = newId  });
}
}

اما 

ShowNotification صدا زده نمیشه 

راه حل چیه؟

یکشنبه, 05 اسفند 1397 10:11

با سلام خدمت شما

ViewBag در Return Json به صفحه ارسال نمیشه و به همین دلیل نمیتونه کد شما رو متوجه بشه

اگر برای ارسال درخواست خود از Ajax استفاده میکنین ، در Function مربوط به CallBack خودتون این متد رو فراخوانی کنین تا به مشکلی برخورد نکنین

یکشنبه, 05 اسفند 1397 17:53

راه حل دیگه ای نداره ؟ 

مثلا قبلا با webForm  از طریق scriptManager و updatepanel  این کار رو میشد انجام بدی  

دوشنبه, 06 اسفند 1397 16:42

msg و type رو درون اون Object که دارین return میکنین قرار بدین و از طریق callback ادامه عملیاتتونو انجام بدین

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید