내가 달성하려는 경우에도 가능 해요,하지만 작업에 따라 PartialView 반환합니다 일반 응용 프로그램을 만들려고 해요 사용자가 제출 한 아쉽게도 다음 코드는 실행할 때 다음 오류가 발생합니다.ASP.NET MVC3 다른 함수에서 PartialView 반환 C#
사전에 전달 된 모델 항목의 형식은 'System.String'이지만이 사전에는 'Core.Entities'유형의 모델 항목이 필요합니다. CGrid '내보기에
, 나는 어떤 앵커 태그에 후크 다음 jQuery를 사용하고이 작동하고 FunctionCall.cshtml 자리 페이지를 반환 테스트되었습니다
$("a").live('click', function (e) {
if ($(this).attr("href").indexOf("#func_") > -1) { {
var func = '/Core/FunctionCall?function=' + $(this).attr("href").replace("#func_", "");
$.ajax({
url: func,
type: 'GET',
async: false,
success: function (result) {
$("#customerTabBody").empty();
$("#customerTabBody").html(result);
}
});
}
});
. 내가 "의 GridView"와 "FormView"함수를 호출하는 경우
public class CoreController : Controller
{
[HttpGet]
public ActionResult FunctionCall(string function)
{
Core.Entities.CFunction func = null;
try
{
using (CFunction f = new CFunction())
func = f.GetFunction(Convert.ToInt32(function));
if (func.ModuleName == "GRID")
return PartialView("GridView", func.Parameters[1].ToString());
else
return PartialView("FormView", func.Parameters[1].ToString());
}
catch (Exception)
{
return null;
}
}
[HttpGet]
public ActionResult GridView(string gridView)
{
Core.Entities.CGrid grid = null;
using (CGrid data = new CGrid())
grid = data.GetGridNew(gridView);
return PartialView(grid);
}
[HttpGet]
public ActionResult FormView(string formView)
{
Core.Entities.CForm form = null;
using (CForm data = new CForm())
form = data.GetForm(formView);
return PartialView(form);
}
}
직접 그 부분보기가 오류없이 올바르게 표시됩니다 : 다음과 유사 할 FunctionCall 기능을 수정하기 때문에, 내가 가진 (이 진행 중입니다) , 그러나 jQuery (또는 앵커 링크를 구축하는 함수)에 필요할 수있는 모든 가능한 유형의 뷰를 제공하기보다는 요청을 처리하고 값이 무엇이든 관계없이 뷰를 반환하는 단일 함수를 원했습니다. 통과했다. 문제는 다른 함수 내에서 이러한 PartialView를 반환하는 것 같습니다.
도움을 주시면 대단히 감사하겠습니다.
증언 : Thanks @ YD1m (그리고 그 외 모든 사람이 대답했습니다). 필자는 코드가 "GridView"또는 "FormView"함수로 곧바로 이동한다고 가정 했었습니다. 나는 더 많은 커피가 필요하다 생각 :
다음지금 작동하는 수정 된 코드입니다 : 당신은 잘못된 유형의 모델을 볼 통과
[HttpGet]
public ActionResult FunctionCall(string function)
{
Core.Entities.CFunction func = null;
try
{
using (CFunction f = new CFunction())
func = f.GetFunction(Convert.ToInt32(function));
if (func.ModuleName == "CORE")
{
Core.Entities.CGrid grid = null;
using (CGrid data = new CGrid())
grid = data.GetGridNew(func.Parameters[1].ToString());
return PartialView("GridView", grid);
}
else
{
Core.Entities.CForm form = null;
using (CForm data = new CForm())
form = data.GetForm(func.Parameters[1].ToString());
return PartialView("FormView", form);
}
}
catch (Exception)
{
return null;
}
}
메시지가 분명합니다.보기에 문자열을 보냈지 만 'Core.Entities.CGrid' 객체가 필요합니다. –
감사합니다. Andre, 추후에 문제가 무엇인지 분명히했습니다. 그것은 내가 두려워하는 문제를 지나치게 생각한 사례였습니다. – user2524354