0
我想創建一些過濾器和數據表的視圖,將過濾。 問題在於過濾器,因爲它們是動態創建的。使用JSON發送和接收模型[MVC] [C#]
public class TestController : Controller
{
public ActionResult Test()
{
DisplayModel model = new DisplayModel();
model.Filters = new List<TestFilter>() { new TestFilter() { Name = "Name 1" }, new TestFilter() { Name = "Name 2" }, new TestFilter() { Name = "Name 3" } };
return View(model);
}
public ActionResult JsonChange(List<TestFilter> filters)
{
if (filters == null || filters.Count == 0) return PartialView("_Selected", null);
SelectedModel model = new SelectedModel();
model.SelectedValues = "";
foreach (var el in filters)
{
model.SelectedValues += (el.Name + " " + el.Value + "<br />");
}
return PartialView("_Selected", model);
}
}
這裏是我的主視圖
@model TestReport.Models.DisplayModel
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(".submit").click(function() {
$.ajax({
url: '/Test/JsonChange/',
data: '<what should be here>',
success: function (data) {
$("#content").html(data);
}
});
});
});
</script>
@foreach (var el in Model.Filters)
{
<div>
<span>@el.Name</span><span>@Html.TextBoxFor(t => el.Value, null)</span>
</div>
}
<div class="submit" style="border:1px solid black;width:100px;">
Send</div>
,這裏是我的,將通過Ajax調用來改變局部視圖:
@model TestReport.Models.SelectedModel
You have selected:
<br />
@if (Model != null && !String.IsNullOrEmpty(Model.SelectedValues))
{
<text>@Model.SelectedValues</text>
}
終於有我型號
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace TestReport.Models
{
public class SelectedModel
{
public string SelectedValues { get; set; }
}
}
和Filter類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace TestReport.Entities
{
public class TestFilter
{
public string Name { get; set; }
public string Value { get; set; }
}
}
我試圖簡化整體解決方案爲您呈現我的問題。 我想完成的是發送到控制器方法動態創建的輸入框的所有值與ajax作爲對象(列表)。 我知道其中一種方法是使用$ .ajax({})方法。但也許這不是最好的解決方案?
確定。它解釋了問題的一部分。通過使用@ Html.BeginForm()來發布這樣的List對象將會很簡單。但如何用ajax完成它? – WebDeveloper