在这种情况下如何获取部分视图数据
How to get partialview data in this situation?
在我的 MVC 4 Web 应用程序中,我有一个带有 jQuery 选项卡表的模型数据,在每个选项卡中,我有一些嵌入式表,它们与此主选项卡表一对多关系,在主选项卡表中,我有一个按钮("添加"),当单击它时,它旁边的一行数据字段,用户输入的数据将被添加到嵌入其中之一的子表(这是分视图)中选项卡表,现在,按钮和控制器背后的代码将数据保存到表中,但当前嵌入的内容根本没有更新以显示新添加的表数据。我很感激任何人都可以帮助我解决这个问题。这是添加按钮后面的javascript,
function AddMeal() {
//Build your Product
var product = { "MDate": $("#MDate").val(), "MRegion": $("#MRegion").va(), "MBAmount": $("#MBAmount").val(),
"MLAmount": $("#MLAmount").val(), "MDAmount": $("#MDAmount").val(), "FINtravelID": $("#FINtravelID").val() };
$.post('@Url.Action("Edit1","Travel")', product, function (data) {
if (data == null) {
location = location.href;
}
else {
//Populate your MealTable element with the results of your Partial View
$('#MealTable').html(data);
}
});}
这是控制器:
[HttpPost]
public ActionResult Edit1( Meal product)
{
db.Meals.Add(product);
db.SaveChanges();
ViewBag.SaveMeal = "1";
return PartialView("_MealPartial", product);
}
这是与这个问题相关的剃刀视图,
@model Travelmvc.Models.FINtravel
<input type="button" value="Add" id="AddButton1" onclick="AddMeal()"/>
<div id="MealPartial">
@Html.Partial("~/Views/Shared/_MealPartial.cshtml")
</div>
这是部分视图详细信息代码:
@model Travelmvc.Models.FINtravel
<table class="MealT" id="MealTable" >
@if (Model != null) {
if (Model.Meals != null){ //here this line code always returns null, that is why the
read data created in SQL table can not display in the loop
foreach (var item in Model.Meals)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.MDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.MRegion)
</td>
<td>
@Html.DisplayFor(modelItem => item.MBAmount)
</td>
<td>
@Html.DisplayFor(modelItem => item.MLAmount)
</td>
<td>
@Html.DisplayFor(modelItem => item.MDAmount)
</td>
<td>
@Html.DisplayFor(modelItem => item.MTAmount)
</td>
<td>
@Html.DisplayFor(modelItem => item.MProduct)
</td>
<td>
@Html.DisplayFor(modelItem => item.MRC)
</td>
<td>
@Html.DisplayFor(modelItem => item.MLocation)
</td>
<td>
@Html.DisplayFor(modelItem => item.MPOC)
</td>
<td>
aa
</td>
<td>
ff
</td>
</tr>
}
...
这就是FNtravel和Meal的模式。
public class FINtravel
{
public int FINtravelID { get; set; }
public string ClaimNo { get; set; }
public virtual ICollection<Meal> Meals { get; set; }
}
public class Meal
{
public int MealID { get; set; }
public int FINtravelID { get; set; }
public virtual FINtravel FINtravel { get; set; }
}
所以我的问题是为什么在 Edit1 控制器中创建的膳食数据不显示在剃刀视图(部分视图)中? 但是我可以看到数据是从后端保存在SQL表中的。任何人都可以帮助我解决这个问题吗?提前非常感谢。
您可以尝试像这样更改控制器代码:
public ActionResult Edit1( Meal product)
{
db.Meals.Add(product);
db.SaveChanges();
product = db.Meals.Find(product.MealID);//get saved product with filled property FINtravel
ViewBag.SaveMeal = "1";
return PartialView("_MealPartial", product.FINtravel);
}
fintravel = db.FINtravel.Find(product.FINtravelID);//
return PartialView("_MealPartial", fintravel);
solves the problem, thanks for all helps in this thread
相关文章:
- 如何在具有某些 UI 视图的状态中管理工厂单个请求数据
- 如何处理数据视图中项目的鼠标点击
- 每隔5秒从数据库获取数据,并通过AJAX将其发送到视图
- AngularJS:点击选项卡刷新视图中的数据
- 如何在angularjs中检查Kendo树视图数据绑定事件
- 将工厂服务数据发送到控制器,以便在视图中使用
- 从Rails视图填充HighChart数据
- 自定义筛选器不'我不使用django数据表视图创建的ajax.data.Json
- 通过jquery将网格视图数据发送到另一个页面
- 清除网络视图数据
- 在这种情况下如何获取部分视图数据
- $_POST 树视图数据
- 如何将视图数据绑定到模型属性
- 将部分视图数据传递给控制器
- 一次将网格视图数据从客户端发送到服务器端
- VueJS和vue-router:使用v-link时,视图数据不会更新
- 用编辑表单替换视图数据
- 隐藏网格视图数据,但仍可访问
- 用部分视图数据asp.net mvc5创建一个弹出窗口
- 如何将html视图数据或(Python)服务器数据传输到Angular或Javascript