我需要使用2 get控制器再次将数据传递到我的视图。我正在从视图中获取数据并将其发送到第二个控制器,但是ı无法再次将其传递给视图。ViewBag.Model已加载到控制器中传递给视图时会出错。
控制器:
[HttpGet]
public ActionResult Add()
{
FormDetailViewModel model = new FormDetailViewModel();
foreach(Form item in formRep.List().ProcessResult)
{
FormList.Add(new SelectListItem { Value =
item.FormId.ToString(), Text = item.TeslimEden });
}
foreach(Item item in itemRep.List().ProcessResult)
{
İtemList.Add(new SelectListItem { Value =
item.ItemId.ToString(), Text = item.ItemDesc });
}
foreach(CheckListType item in typeRep.List().ProcessResult)
{
TypeList.Add(new SelectListItem { Value =
item.CheckListTypeId.ToString(), Text = item.CheckListType1 });
}
model.checkLists = TypeList;
model.FormViewList = FormList;
model.İtems = İtemList;
return View(model);
}
[WebMethod]
public ActionResult GetData(FormDetailViewModel model,string input)
{
ViewBag.model = input;
return View(model);
}
查看:
@using (Html.BeginForm())
{ <tr>
<td>
@Html.DisplayNameFor(model => model.FormDetail.CheckListType)
</td>
<td>
@Html.DropDownListFor(model =>
model.FormDetail.CheckListTypeId, Model.checkLists, new { @id =
"Selection",
@class = "drop-open" })
<td><button onclick="">Bolum Ekle</button></td>
</tr>
<tr>
<td colspan="2" style="padding-top:40px;">
<input type="submit" value="Save" class="btn btn-info" />
</td>
</tr>
</table>
<h1> @ViewBag.model</h1>
JS / jQuery:
$(document).ready(function () {
$('#Selection').on('change', function () {
var info = {
id: $('#Selection option:selected').text()
};
$.ajax({
url: '/User/FormDetail/GetData',
type: "GET",
data: { 'input': info.id },
success: function (result) {
console.log(result);
//$('#ajaxDisplay').html(result);
}
});
});
获取http://localhost:63081/User/FormDetail/GetData?input=Notlar 500(内部服务器错误)
send @ jquery.min.js:4
ajax @ jquery.min.js:4
(anonymous) @ open.js:7
dispatch @ jquery.min.js:3
q.handle @ jquery.min.js:3
答案 0 :(得分:1)
由于GetData(FormDetailViewModel model,string input)
GetData在您的get请求中需要两个参数而导致错误,您只是传递了输入而不是模型,这就是模型为null的原因,并且您传递了相同的模型来查看return View(model);
导致了问题您只需要使用Ajax将模型传递给您的get请求,否则就不要将模型传递给您的视图。像return View();
答案 1 :(得分:-1)
您没有正确传递数据,请进行以下更正,然后再进行操作。
您不需要在操作方法中添加第二个参数,因为您在模型中获取ID。
$(document).ready(function () {
$('#Selection').on('change', function () {
var info = {
id: $('#Selection option:selected').text()
};
$.ajax({
url: '/User/FormDetail/GetData',
type: "GET",
data: { 'model': JSON.stringify(info), 'input': info.id },
success: function (result) {
console.log(result);
//$('#ajaxDisplay').html(result);
}
});
});