sara_t
دوشنبه 15 خرداد 1396, 13:26 عصر
سلام دوستان
من برای پروژه هام از یه تابع استفاده میکنم که مسیج رو بصورت یه پیغام نشون بدم.ولی تو یکی از برنامه هام جواب نمیده و کد پیغام مسیج نوشته میشه.درواقع گویا noty.jquery کار نمیکنه.
ممنون میشم راهنمایی کنید چرا این اسکریپت کار نمیکته؟
jquery.noty.js
_behnam_
دوشنبه 15 خرداد 1396, 14:00 عصر
سلام. اینجوری نمیشه جواب داد. باید نحوه استفاده و ایمپورت و مکان قرارگیری کدهارو مشخص کنید.
sara_t
دوشنبه 15 خرداد 1396, 16:31 عصر
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"></script>
<script src="@Url.Content("~/Scripts/Noty/jquery.noty.js")"></script>
اول این کدها رو اضافه کردم به layout
بعد در پوشه ای بنام utility: یک کلاس ساختم بنام messagebox.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
public class JsonData
{
public string Script { get; set; }
public string Html { get; set; }
public bool Success { get; set; }
}
public class MessageBox
{
public static JavaScriptResult Show(string message, MessageType type = MessageType.Alert, bool modal = false, MessageAlignment layout = MessageAlignment.Center, bool dismissQueue = false)
{
string txt = "$.noty.closeAll(); noty({ text: \"" + message + "\", type: \"" + type.ToString().ToLower() + "\", layout: \"" + layout.ToString().ToLowerFirst() + "\", dismissQueue: " + dismissQueue.ToString().ToLower() + ", modal: " + modal.ToString().ToLower() + " });";
return new JavaScriptResult() { Script = txt };
}
}
public enum MessageType
{
Success,
Error,
Information,
Warning,
Alert,
Notification
}
public enum MessageAlignment
{
Bottom,
BottomCenter,
BottomLeft,
BottomRight,
Center,
CenterLeft,
CenterRight,
Inline,
Top,
TopCenter,
TopLeft,
TopRight
}
حالا در کنترلر به این صورت استفاده میکنم:
return MessageBox.Show(ModelState.GetErrors(), MessageType.Warning);
sara_t
دوشنبه 15 خرداد 1396, 16:33 عصر
حتی به این صورت هم که مینویسم بازم درست جواب نمیده:
return Json(new JsonData()
{
Success = false,
Script = MessageBox.Show("مواد لازم با موفقیت ثبت شد", MessageType.Success).Script,
Html = ""
});
نحوه نمایش هم به اینصورت هست که وارد یه پیج جدید میشه و مثلا این پیغام رو نشون میده:
{"Script":"$.noty.closeAll(); noty({ text: \"مواد لازم با موفقیت ثبت شد\", type: \"success\", layout: \"center\", dismissQueue: false, modal: false });","Html":"","Success":false}
sara_t
سه شنبه 16 خرداد 1396, 00:05 صبح
من مشکل این کد رو پیدا کردم.در قسمت کنترلر [ajaxonly] رو قرار نداده بودم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.