ورود

View Full Version : سوال: دریافت خروجی json در view



sinayas
دوشنبه 01 دی 1393, 12:49 عصر
سلام به همه دوستان

من هرچی تو این فروم سوال پرسیدم بیشترش بی جواب موند .

لطفا راهنمایی بکنید .

من یک اکشن دارم که خروجی json برمیگردونه .
چجوری میتونم تو view به اون خروجی دسترسی داشته باشم .
هدفم اینه که خروجی به صورت رشته باشه و من بتونم این رشته رو در ویو پردازش بکنم (البته میدونم که خروجی همیشه رشته هست)
منظور من اینه که بتونم مثلا بنویسم
data= خروجی json
و از متغیر data بتونم در view استفاده بکنم .

ممنون میشم راهنمایی بکنید

hadi0x7c7
دوشنبه 01 دی 1393, 13:47 عصر
http://api.jquery.com/jquery.getjson/

sinayas
دوشنبه 01 دی 1393, 14:27 عصر
ممنون از پاسخ شما
من اگر با این کد گفته شده
$.ajax({ dataType: "json",

url: url,

data: data,

success: success

});
البته url رو درست وارد کنم
بتونم داده های اکشن رو بازیابی بکنم .
حالا اگر بخوام تو view یه متغیر تعریف بکنم و خروجی این کد رو بهش بدم چچیکار باید بکنم .
(تعریف متغیر رو بلدم . مشکل ریختن خروجی حیسون در این متغیر)

ممنون از شما

hadi0x7c7
دوشنبه 01 دی 1393, 17:53 عصر
آخرین مثال رو نگاه کنید، ببنید جواب میگرید؟

sinayas
دوشنبه 01 دی 1393, 18:04 عصر
ممنون از شما که پیگیری میکنید .
مشکل اصلی رو مطرح بکنم .
من میخوام از گرید بوت استراپ که تو این سایت معرفی شده استفاده بکنم .

http://wenzhixin.net.cn/p/bootstrap-table/docs/examples.html

برای استفاده از این گرید نیاز داریم که داده هارو به صورت فایل جیسون معرفی بکنیم -

<table data-toggle="table" data-url="data1.json" data-cache="false" data-height="299"><thead><tr><th data-field="id">Item ID</th><th data-field="name">Item Name</th><th data-field="price">Item Price</th></tr></thead></table>

قسمتی که زیرش رو خط کشیدم
چجوری از اکشن مورد نظر داده های جیسون رو به این قسمت وارد بکنم .

واقعا ممنون میشم اگر کمک کنید

mze666
دوشنبه 01 دی 1393, 19:33 عصر
data-url="@Url.Action("ActionName", "ControllerName")"
این باید کار بکنه. توی اکشنتون هم که گفتید return Json کردید دیگه

sinayas
دوشنبه 01 دی 1393, 19:57 عصر
دقیقا مشکل منم همینه
همه راه ها رو امتهان کردم . جواب نمیدی .
کد اکشن :
[HttpPost] public JsonResult AccountJsonResult()
{




var userID = (db.Users.Single(j => j.UserName == User.Identity.Name)).Id;




var accounts = db.Accounts.Where(c => c.UserId == userID);


JavaScriptSerializer serializer = new JavaScriptSerializer();
// ViewData["JsonRegionList"] = serializer.Serialize(accounts);


JsonResult result = new JsonResult();
result.Data = serializer.Serialize(accounts);
// ViewData["JsonRegionList"] = result.Data;
// List<Account> acc = accounts.ToList();
// return Json(new { Result = "OK", Records = accounts });
return result;


}

انواع مختلف خروجی رو امتهان کردم جواب نداده .
اگر کسی میدونه مشکل کجاست . لطفا کمک بکنه

ممنون از همه

TeacherMath
دوشنبه 01 دی 1393, 21:21 عصر
<table data-toggle="table" data-url="@Url.Action("AccountJsonResult")" data-cache="false" data-height="299">
<thead>
<tr>
<th data-field="id">Item ID</th>
<th data-field="name">Item Name</th>
<th data-field="price">Item Price</th>
</tr>
</thead>
</table>

sinayas
دوشنبه 01 دی 1393, 22:24 عصر
ممنون از اینکه کمک میکنید .
این راه هم امتهان کردم
جواب نمیده
واقعا گیج شدم

جالب اینجاست که رو اکشن مورد نظر بریک پوینت (Breakpoint) میزارم و هیچوقت فراخوانی نمیشه

hadi0x7c7
دوشنبه 01 دی 1393, 22:31 عصر
یه نکته ای بود توی سایت dotnettips مربوط به ساخت صحیح url برای اکشن، دقیق یادم نیست، یه سرچ بزنید، ممکنه که url رو اشتباهی به کد js میدید.

sinayas
دوشنبه 01 دی 1393, 22:52 عصر
فکر کنم منظور شما این صفحه (http://www.dotnettips.info/post/891/%D9%86%D8%AD%D9%88%D9%87-%D8%B5%D8%AD%DB%8C%D8%AD-%D8%AA%D9%88%D9%84%DB%8C%D8%AF-url-%D8%AF%D8%B1-asp-net-mvc) هستش

همه راه های اون رو هم امتهان کردم
باز هم نشد.

hadi0x7c7
دوشنبه 01 دی 1393, 23:15 عصر
فکر کنم منظور شما این صفحه (http://www.dotnettips.info/post/891/%D9%86%D8%AD%D9%88%D9%87-%D8%B5%D8%AD%DB%8C%D8%AD-%D8%AA%D9%88%D9%84%DB%8C%D8%AF-url-%D8%AF%D8%B1-asp-net-mvc) هستش

همه راه های اون رو هم امتهان کردم
باز هم نشد.

با firebug یا fiddler چک کردید که چه درخواستای HTTP توسط مرور گر ارسال میشه؟

TeacherMath
دوشنبه 01 دی 1393, 23:20 عصر
اون تیبلی که شما می خواین پیاده سازی کنید. مال خود bootstrap نیست. باید این فایل ها اضافه بشه.
http://wenzhixin.net.cn/p/bootstrap-table/docs/getting-started.html

TeacherMath
دوشنبه 01 دی 1393, 23:56 عصر
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";


return View();
}



public ActionResult A()
{




var myData = new List<data>();
myData.Add(new data(1, "A", 12));
myData.Add(new data(2, "B", 13));
myData.Add(new data(3, "C", 123));
myData.Add(new data(4, "D", 12));
myData.Add(new data(5, "E", 132));
myData.Add(new data(6, "F", 122));
myData.Add(new data(7, "G", 132));
myData.Add(new data(8, "H", 132));
myData.Add(new data(9, "I", 122));



return Json(myData, JsonRequestBehavior.AllowGet);





}


}





این داده واسمه من از این کلاس درست شدن.


namespace test.Models
{
public class data
{
public int Id { get; set; }
public string Name { get; set; }
public float Price { get; set; }
public data(int id, string name, float price)
{
Id = id;
Name = name;
Price = price;
}


}
}









<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">


<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
<link href="~/Content/bootstrap-table.css" rel="stylesheet" />
<!-- Latest compiled and minified JavaScript -->


<table data-toggle="table" data-url="@Url.Action("A","Home")" data-cache="false" data-height="299">
<thead>
<tr>
<th data-field="Id">Item ID</th>
<th data-field="Name">Item Name</th>
<th data-field="Price">Item Price</th>
</tr>
</thead>
</table>


@section scripts{
<script src="~/Scripts/jquery-2.1.3.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<script src="~/Scripts/bootstrap-table.js"></script>


}

sinayas
سه شنبه 02 دی 1393, 03:10 صبح
فایل ها رو هم اضافه کردم
همچنان هیچ داده ای برنمیگرده و گرید خالی !!!

TeacherMath
سه شنبه 02 دی 1393, 07:19 صبح
من خودم این کد رو امتحان کردم. دقت کن.
کدا تو اینجا بذار .

sinayas
سه شنبه 02 دی 1393, 14:33 عصر
از همه دوستان ممنونم به خصوص TeacherMath (http://barnamenevis.org/member.php?150212-TeacherMath)
مشکل این بود که فیلتر [HttpPost] رو گذاشته بودم

ممنون از همه