I need to update this model in my view without a page refresh so I figure ajax is the best option but I'm not sure how to do it.
So I've created an ajax call to give me all my info in an object array but I dont know how to user that in my view.
Models
public class User
{
public Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
}
public class Course
{
public Id { get; set; }
public string Name { get; set; }
public string User { get; set; }
}
Controller
public JsonResult userCourseInfo()
{
if (Session["Username"] != null)
{
string user = Session["Username"].ToString();
var UserInfo = from u in db.Users
where u.Username == user
select u;
var UserCourse = from c in db.Courses
where c.User == user
select c;
var model = new UserCourseModel { user = UserInfo, course = UserCourse };
return Json(model, JsonRequestBehavior.AllowGet);
}
else
{
return null;
}
}
View
<ul>
@foreach (var item in Model.course)
{
<li>
<div class="row">
<div class="col-md-5">
<div class="map-panel-box-general">
<p>@Html.DisplayFor(modelItem => item.Id)</p>
<p>@Html.DisplayFor(modelItem => item.Name)</p>
<p>@Html.DisplayFor(modelItem => item.User)</p>
</div>
</div>
</div>
</li>
}
</ul>
Javascript
function updatePanel()
{
$.ajax(
{
url: "@Url.Action("userCourseInfo", "Users")",
type: "GET",
dataType: "json",
success: function(data)
{
panelInfo = [];
$.each (data.course, function(index, courses)
{
panelInfo.push({ courseId: course.Id, courseName: course.Name, courseUsers: course.User })
})
},
error: function()
{
console.log('failed');
}
})
}