2014-12-01 4 views
-2

ASP.NET MVC 응용 프로그램에서 작업합니다. 테이블은 jQuery를 사용하여 채워지지만, 지금은 중요하지 않습니다.@ Url.Action 결과는 양식에서 호출 할 때 404 오류가 발생합니다.

문제는 다음과 같습니다. 양식 태그로 전화를 걸면 404 찾을 수 없음 오류가 발생합니다. 검사를 통해 모델이 확인됨을 확인했습니다 (채워졌습니다).

양식 태그를 주석 처리 할 때 메소드 호출이 가능하지만 모델이 null 인 경우 (바인딩되지 않은 것처럼).

[HttpGet] 
public ActionResult PayrollData(PayrollModel model) 
{ 
    //do something 
} 

편집 : 이런 이유가 발견 : 요청 URL :

여기
@model PayrollModel 

@*@using (Html.BeginForm("Index", "Request", FormMethod.Post, new { id = "frmPersonView" })) 
{*@ 

    <table data-dataurl="@Url.Action("PayrollData", "Payroll")" id="tblData" class="table hover table-bordered table-striped"></table> 
@*}*@ 

내 컨트롤러 방법 : 여기

코드의 일부는 내가 사용하는 것입니다

http : // localhost/CT.ISVDV.WebUI/Payroll/PayrollData? sEcho = 1 & 참고 iColumn = 5 & sColumns = & iDisplayStart = 0 & iDisplayLength = 10 & mDataProp_0 = FIRSTNAME & mDataProp_1 = LASTNAME & mDataProp_2 = RIGHTGROUPNAME & mDataProp_3 = DISABILITYTYPENAME & mDataProp_4 = 양 & iSortCol_0 = 0 & sSortDir_0 = ASC & iSortingCols = 1 & bSortable_0 = TRUE bSortable_1 & & bSortable_2 = TRUE TRUE = & & bSortable_3 bSortable_4 = TRUE TRUE = & 5B3 SelectedTypes %의 %의 5D = 4 % & 5B4 SelectedTypes 5D % = 5 % & SelectedTypes의 5B5 % 5D = 6 & SelectedTypes % 5B6 % 5D = 7 & SelectedTypes %의 5B7 % 5D = 8 & SelectedTypes % 5B8 % 5D = 9 & SelectedTypes % 5B9 % 5D = 10 & SelectedTypes % 5B10 % 5D = 11 & SelectedTypes %의 5B11 % 5D = 12 & SelectedTypes % 5b12 및 % 5D = 13 & SelectedTypes의 % 및 5b13 % 5D = 14 & SelectedTypes %의 5B14 % 5D = 15 & SelectedTypes % 5B15 % 5D = 16 & SelectedTypes % 5B16 % 5D = 17 & SelectedTypes %의 5B17 % 5D = 18 & SelectedTypes % 5B18 % 5D = 19 & SelectedTypes % 5B19 % 5D = 20 & SelectedTypes % 5B20 % 5D = 21 & SelectedTypes % 5B21 % 5D = 22 & SelectedTypes % 5B22 % 5D = 23,680,403,210 SelectedTypes % 5B23 %의 (d) = 24 % & SelectedTypes 5B24 5D % = 25 % & SelectedTypes 5B25 = 26 % 5D PayrollDate = & & 2014년 1월 12일 PayrollSearch.RIGHTGROUPIDList.Value % 5B0 % 5D = 4 % & 5B1의 PayrollSearch.RIGHTGROUPIDList.Value 5D % = 5 % & 5B2 PayrollSearch.RIGHTGROUPIDList.Value의 5D % = 6 % & PayrollSearch.RIGHTGROUPIDList.Value의 5B3 % 5D = 7 & 5B4 PayrollSearch.RIGHTGROUPIDList.Value %의 %의 5D = 8 & 5B5 PayrollSearch.RIGHTGROUPIDList.Value %의 %의 5D = 9 & 5B6 PayrollSearch.RIGHTGROUPIDList.Value %의 %의 (d) = 10 %의 PayrollSearch.RIGHTGROUPIDList.Value & 5B7 5D % = 11 %의 PayrollSearch.RIGHTGROUPIDList.Value & 5B8 5D % = 12 %의 PayrollSearch.RIGHTGROUPIDList.Value & 5B9 %의 5D = 13 & PayrollSearch.RIGHTGROUPIDList.Value % 5B10 % 5D = 14 & PayrollSearch.RIGHTGROUPIDList.Value % 5B11 % 5D = 15 & PayrollSearch.RIGHTGROUPIDList.Value % 5b12 및 5D % = 16 %의 & PayrollSearch.RIGHTGROUPIDList.Value 및 5b13 %의 (d) = 17 %의 & PayrollSearch.RIGHTGROUPIDList.Value 5B14 5D % = 18 %의 & PayrollSearch.RIGHTGROUPIDList.Value 5B15 = 19 % 5D & PayrollSearch.RIGHTGROUPIDList. 5B16 값 % = 20 % 5D & PayrollSearch.RIGHTGROUPIDList.Value %의 5B17 5D % = 21 %의 & PayrollSearch.RIGHTGROUPIDList.Value 5B18 5D % = 22 %의 & PayrollSearch.RIGHTGROUPIDList.Value 5B19 5D % = 23 % & PayrollSearch.RIGHTGROUPIDList.Value 5B20 5D % = 24 %의 & PayrollSearch.RIGHTGROUPIDList.Value 5B21 %의 (d) = 25 %의 & PayrollSearch.RIGHTGROUPIDList.Value 5B22 % 5D = 26 = 10 tblData_length & &

01,235,

지금까지 모든 것이 옳았지만 모델 속성이 아닌 이상한 값도 전달합니다. 이는 양식 태그를 사용하는 경우에만 발생하며 필요합니다.

DXScript = 1_157 % 2C1_89 % 2C1_88 % 2C17_28 % 2C17_2 % 2C1_149 % 2C1_86 % 2C1_141 % 2C1_96 % 2C17_7 % 2C1_139 % 2C1_98 % 2C1_97 % 2C17_8 % 2C1_155 % 2C1_125 % 2C1_156 % 2C1_118 % 2C17_9 % 2C1_148 % 2C1_147 % 2C1_132 % 2C17_27 % 2C1_142 % 2C1_93 % 2C1_119 % 2C1_99 % 2C1_151 % 2C1_126 % 2C17_13 % 2C1_108 % 2C1_115 % 2C1_137 % 2C1_92 % 2C1_152 % 2C1_128 % 2C17_15 % 2C1_129 % 2C1_120 % 2C17_11 % 2C1_131 % 2C1_140 % 2C1_134 % 2C17_18 % 2C1_145 % 2C17_20 % 2C1_143 % 2C1_138 % 2C1_146 % 2C1_150 % 2C17_23 % 2C17_26 % 2C1_95 % 2C5_5 % 2C5_4 % 2C4_11 % 2C4_10 % 2C4_6 % 2C4_7 % 2C4_9 % 2C17_14 % 2C4_12 % 2C1_107 % 2C1_110 % 2C4_13 % 2C4_14 % 2C1_106 % 2C1_124 % 2C17_12 % 2C1_144 % 2C7_48 % 2C1_91 % 2C7_50 % 2C17_19 % 2C1_100 % 2C1_103 % 2C1_111 % 2C17_0 % 2C1_114 % 2C1_101 % 2C17_1 % 2C1_102 % 2C17_3 % 2C1_104 % 2C1_116 % 2C17_5 % 2C1_130 % 2C1_113 % 2C17_16 % 2C17_17 % 2C1_112 % 2C17_24 % 2C1_117 % 2C10_2 % 2C10_1 % 2C10_3 % 2C10_4 % 2C17_4 % 2C9_15 % 2C9_12 % 2C9_10 % 2C17_21 % 2C9_14 % 2C9_11 % 2C9_13 % 2C8_10 % 2C8_17 % 2C8_24 % 2C8_26 % 2C8_9 % 2C8_12 % 2C8_13 % 2C8 _18 % 2C17_22 % 2C8_21 % 2C8_23 % 2C8_22 % 2C8_16 % 2C8_19 % 2C8_20 % 2C8_14 % 2C8_15 % 2C8_25 % 2C8_11 % 2C6_12 % 2C17_25 & DXCss = % 2FCT.ISVDV.WebUI % 2Fimg % 2Ffavicon.ico % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fjvectormap % 2Fjquery-jvectormap-1.2.2.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fbootstrap.min.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Ffont-awesome.min.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fionicons.min.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2FiCheck % 2Fall.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fcolorpicker % 2Fbootstrap-colorpicker.min.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Ftimepicker % 2Fbootstrap-timepicker.min.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fmorris % 2Fmorris.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fdatepicker % 2Fdatepicker3 .css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fdaterangepicker % 2Fdaterangepicker-bs3.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fbootstrap-wysihtml5 % 2Fbootstrap3-wysihtml5.min.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fcss % 2Fselect2.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fselect2-bootstrap.css % 2C % 2FCT.ISVDV.WebUI % 2FConten t % 2Fdatatables % 2FdataTables.bootstrap.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2FAdminLTE.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2FSite.css % 2C % 2FCT.ISVDV.WebUI % 2FContent % 2Fjquery. bootstrap-touchspin % 2Fjquery.bootstrap-touchspin.css % 2C1_9 % 2C1_11 % 2C0_844 % 2C0_842 % 2C1_8 % 2C0_691 % 2C0_694 % 2C0_682 % 2C1_4 % 2C0_684 % 2C0_805 % 2C0_698 % 2C4_2 % 2C0_700 % 2C5_1 % 2C0_782 % 2C0_762 % 2C0_764 % 2C7_1 % 2C7_0 % 2C1_1 % 2C0_657 % 2C0_869 % 2C0_871 % 2C0_777 % 2C8_2 % 2C0_779 % 2C8_0 % 2C0_794 % 2C6_2 % 2C0_796 & _ =

1417596051723 어떻게이 발생하지 않도록 할 수 있습니다?

+2

당신은 무엇을하려고합니까 ?? –

+0

Payroll/PayrollData 메서드에서 반환 된 일부 Json 데이터를 구문 분석하기 만하면됩니다. 이 방법으로 작동하는 JQuery 테이블 컨트롤입니다. – Alen

+0

이쪽의 모델은 게시되지 않습니다 –

답변

0

서식의 설정이 해제되어 있습니다. 작은 따옴표와 이중 따옴표를 섞어보십시오.

data-dataurl='@Url.Action("PayrollData", "Payroll")' 

PayrollData는 PayrollModel 모델을 예상하며 아무 것도 제공하지 않습니다. Url.Action을 사용하여 전체 모델을 보낼 수있는 합리적인 방법이 없으므로 ID 만 보내는 것이 좋습니다.

data-dataurl='@Url.Action("PayrollData", "Payroll", new { id = model.ID })' 
+0

주석 처리되지 않은 양식 태그와 시도했지만 succes없이 – Alen

+0

PayrollData PayrollModel 모델을 기대하고 아무도 제공하지 않습니다. Url.Action을 사용하여 전체 모델을 보내는 합리적인 방법이 없으므로 ID 만 보내는 것이 좋습니다. –

+0

Include 양식 태그가 PayrollData 작업에 대한 모델을 제공하지 않을까요? 명시 적 전달을 사용하더라도 동일한 오류가 발생합니다. 데이터베이스에 대한 쿼리에 채워진 모델 애트리뷰트를 사용하므로 ID 만 전달할 수 없습니다. – Alen

0

나는 그것이 모두 작동하는 방식, 특히 모델 바인딩에 대해 매우 혼란 스럽다고 생각합니다.일반적으로

이 같은있을 것입니다 당신이 부를 것이다 양식에서 저장을 클릭하면

@model PayrollIndexModel 
@Model.PageTitle  
@using (Html.BeginForm("Request", "Payroll", FormMethod.Post, new { id = "frmPersonView" })) 
{ 
    <table data-dataurl="@Url.Action("PayrollData", "Payroll")" id="tblData" class="table hover table-bordered table-striped"></table>   
} 

다음

[HttpGet] 
public ActionResult Index() 
{ 
// here you would get your model that displays some data on that page 
PayrollIndexModel model = fetchModelData(); 
return View(model) 
} 

및 해당 뷰 (우리가 급여 컨트롤러에만 작업이 있다고 말한다 수 있습니다) PayrollModel이 모델 클래스에 바인드 된 곳에서 아래에있는 모델을 선택하면 나중에이 모델을 사용하여 작업을 수행 할 수 있습니다. 그러나

[HttpGet] 
public ActionResult PayrollData() 
{ 
PayrollModel model = fetchModelData(); 
return View(model) 
} 

:

[HttpPost] 
public ActionResult Request(PayrollModel model) 
{ 
    // save stuff to database 
} 

@Url.Action("PayrollData", "Payroll") 

당신은 행동 당신이 GET 방식으로 데이터를 요청하고 서버에 아무것도 전송하지 않는 한이 방법을 만들어야 할 일이 하나를 얻으려면 , 나는 당신이 DataTables 라이브러리를 사용하고 마지막으로 Datata가 JSON 객체를 기대하고 있음을 기억한다. 그래서 여기에 JSON을 보내야합니다.

{ "iTotalRecords":11, 
"iTotalDisplayRecords":11, 
"sEcho":1, 
"aaData":[{"FirstName":"Dan","LastName":"Callahan","PhoneNumber":"(123) 555-5552","Age":35,"Birthday":"\/Date(218955600000)\/"}, 
{"FirstName":"Tom","LastName":"Gun","PhoneNumber":"(123) 555-5559","Age":59,"Birthday":"\/Date(-534538800000)\/"}, 
{"FirstName":"James","LastName":"Halk","PhoneNumber":"(123) 555-5554","Age":21,"Birthday":"\/Date(660027600000)\/"}, 
{"FirstName":"Jarold","LastName":"Interface","PhoneNumber":"(123) 555-5556","Age":39,"Birthday":"\/Date(86932800000)\/"}, 
{"FirstName":"Kevin","LastName":"Kentucky","PhoneNumber":"(123) 555-5551","Age":40,"Birthday":"\/Date(92638800000)\/"}, 
{"FirstName":"Justin","LastName":"Michaels","PhoneNumber":"(123) 555-5555","Age":27,"Birthday":"\/Date(470898000000)\/"}, 
{"FirstName":"Erich","LastName":"Milton","PhoneNumber":"(123) 555-5558","Age":54,"Birthday":"\/Date(-370724400000)\/"}, 
{"FirstName":"Mike","LastName":"Peterson","PhoneNumber":"(123) 555-5550","Age":24,"Birthday":"\/Date(568184400000)\/"}, 
{"FirstName":"Jason","LastName":"Ralph","PhoneNumber":"(123) 555-5557","Age":27,"Birthday":"\/Date(468306000000)\/"}, 
{"FirstName":"John","LastName":"Thompson21","PhoneNumber":"(123) 555-5545","Age":27,"Birthday":"\/Date(473317200000)\/"} 
]} 

쉽게 많은 수행이 라이브러리를 확인 당신의 인생을 만들려면 :

[HttpGet] 
public ActionResult PayrollData() 
{ 
PayrollModel model = fetchModelData(); 
return Json(model) 
} 

귀하의 모델은 JQuery와 DataTable에 그것을 (이해)와 같은 구문 분석 할 수있는 방식으로 포맷해야합니다 JSON 변환 당신을위한 지루한 작업 : https://github.com/ALMMa/datatables.mvc

행운을 빌어 요.

관련 문제