Salve a tutti.
Ho una view contenente un div (chat). Al click di un bottone voglio che tale div si refreshi senza cambiare pagina.
Di seguito il codice
View principale
Controller
View parziale
Al click del bottone non succede nulla! :incazz:
Ho una view contenente un div (chat). Al click di un bottone voglio che tale div si refreshi senza cambiare pagina.
Di seguito il codice
View principale
Codice:
@model List<Community.Models.ChatMessageModels>
<html>
<head>
<title></title>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#sendMessage').click(function (e) {
var targetDiv = '#chat';
$.post('[B]/Chat/ChatRefresh[/B]', {@Model }, function (result) {
$(targetDiv).html(result);
});
});
});
</script>
</head>
<body>
<div>
[B] <div id="chat">
@Html.Partial("chatRefresh", Model)
</div>[/B]
<input id ="message" type="text"/>
</div>
</body>
</html>
Controller
Codice:
namespace Community.Controllers
{
public class ChatController : Controller
{
//
// GET: /Chat/
public ActionResult Index()
{
return View();
}
public ActionResult [B]ChatRefresh[/B](ChatMessageModels model)
{
var messagesList = new List<ChatMessageModels>();
messagesList.Add(new ChatMessageModels{User = "admin", Body = "Ciao a tutti!!!", DateTime = DateTime.Now});
messagesList.Add(new ChatMessageModels{User = "admin", Body = "Questo è un test", DateTime = DateTime.Now});
return PartialView("chatRefresh", messagesList);
}
}
}
View parziale
Codice:
@using System.Web.Mvc.Ajax
@model List<Community.Models.ChatMessageModels>
<head>
<title></title>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
</head>
<table>
@if (Model != null)
{
for (int i = 0; i < Model.Count(); i++)
{
<tr> <td id ="chatMessageUser"> @Model[i].User </td> <td id ="chatMessageBody"> @Model[i].Body </td> <td id ="chatMessageDateTime"> @Model[i].DateTime </td> </tr>
@Html.HiddenFor(m => Model[i].User)
@Html.HiddenFor(m => Model[i].Body)
@Html.HiddenFor(m => Model[i].DateTime)
}
}
<tr> <td> <input type="submit" id="sendMessage" value="Send" /> </td> </tr>
</table>
Al click del bottone non succede nulla! :incazz: