我從后臺其他action傳遞了一個強型別Model到前臺顯示,然后前臺建立一個Html.BeginForm表單,并通過object routeValues將整個Model傳回到后臺另一個action,但后臺接收不到該物件里面的復雜型別資料,具體代碼如下:
Model:
public class FooterViewModel
{
public string CompanyName { get; set; }
public string Year { get; set; }
}
public class BaseViewModel
{
public string UserName { get; set; }
public FooterViewModel FooterData { get; set; }
}
public class OperateEmployeeViewModel : BaseViewModel
{
public int ID { get; set; }
.......
.......
}
View:
@model MVCExample.ViewModels.OperateEmployeeViewModel
@{
ViewBag.Title = "DeleteEmployee";
}
<h2>Delete Confirmation</h2>
@using (Html.BeginForm("DeleteEmployee", "Employee", Model, FormMethod.Post))
{
<table>
<tr>
<td>
First Name:
</td>
<td>
@Html.DisplayFor(x => x.FirstName)
</td>
</tr>
......
}
Controller:
public ActionResult DeleteEmployee(OperateEmployeeViewModel operateEmployee, string BtnSubmit)
{
switch (BtnSubmit)
{
case "Delete":
Employee e = new Employee();
.........
.........
return RedirectToAction("Index");
case "Cancel":
return RedirectToAction("Index");
}
return new EmptyResult();
}


打了斷點,可以看到從后臺其他action傳遞到前臺的強型別Model中,FooterData資料不是null的,但從前臺beginform傳遞到后臺,action接收到的FooterData卻是null,請問各位大佬這是怎么回事,要怎么解決?
uj5u.com熱心網友回復:
沒有大佬知道嗎?我是萌新,請賜教。uj5u.com熱心網友回復:
你控制器洗掉上面有[HttpPost]嗎uj5u.com熱心網友回復:
加了,還是一樣不行
uj5u.com熱心網友回復:
我也是才接觸mvc,你前臺是怎么觸發控制器的方法的,是不是submit的按鈕之類的,如果不是的有傳引數嗎
uj5u.com熱心網友回復:
你控制器洗掉上面有[HttpPost]嗎
加了,還是一樣不行
我也是才接觸mvc,你前臺是怎么觸發控制器的方法的,是不是submit的按鈕之類的,如果不是的有傳引數嗎
是的,在Html.Beginform里有個submit按鈕。
uj5u.com熱心網友回復:
你控制器洗掉上面有[HttpPost]嗎
加了,還是一樣不行
我也是才接觸mvc,你前臺是怎么觸發控制器的方法的,是不是submit的按鈕之類的,如果不是的有傳引數嗎
是的,在Html.Beginform里有個submit按鈕。
你直接寫Html.Beginform()試試
uj5u.com熱心網友回復:
你控制器洗掉上面有[HttpPost]嗎
加了,還是一樣不行
我也是才接觸mvc,你前臺是怎么觸發控制器的方法的,是不是submit的按鈕之類的,如果不是的有傳引數嗎
是的,在Html.Beginform里有個submit按鈕。
你直接寫Html.Beginform()試試
不行的,如果Html.Beginform()不帶引數,連最基本的值都傳遞不了。
uj5u.com熱心網友回復:
前后臺Model類欄位名稱,型別相同嗎uj5u.com熱心網友回復:
前后臺Model類欄位名稱,型別相同嗎
是一樣的,都是同一個Model,OperateEmployeeViewModel,請看我帖子中的兩張圖片。
其他string、int資料都可以傳,為什么復雜的物件資料就不行。
uj5u.com熱心網友回復:
其它值有嗎?是不是要new 一下uj5u.com熱心網友回復:
你控制器洗掉上面有[HttpPost]嗎
加了,還是一樣不行
我也是才接觸mvc,你前臺是怎么觸發控制器的方法的,是不是submit的按鈕之類的,如果不是的有傳引數嗎
是的,在Html.Beginform里有個submit按鈕。
你直接寫Html.Beginform()試試
我也試試,行不行
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/53925.html
標籤:ASP.NET
上一篇:c#語言獲取傳感器資料
