Asp.net Mvc Convert将Action结果(视图)返回给字符串

时间:2011-09-22 14:15:57

标签: asp.net-mvc

我正在使用asp.net mvc3(c#)中的项目。

我需要一个解决方案,将视图(不是局部视图)转换为来自不同控制器的字符串。

  

代码说明:

1)从proposalsController调用proposalmoduleController的“details”动作。

2)proposalmoduleController动作“details”返回一个视图并将此视图(返回结果)转换为proposalsController中的字符串。

代码

public class proposalmoduleController : ControllerBase
{   

   [HttpGet]
    public ActionResult details(int id, int widgetuniqueid)
    {
        //id - widgetid of div container
        List<ModuleViewModel> listmoduleviewmodel = new List<ModuleViewModel>();
        List<ModuleFieldViewModel> listmodulefieldviewmodel = new List<ModuleFieldViewModel>();

        var objProposalModuleService = new ProposalModuleService();
        var objModuleViewModel = new ModuleViewModel();

        string WidgetTitle = "";
        Int64 ModuleTemplateID = 0;


        //objModuleViewModel.ProposalID = proposalid;
        objModuleViewModel.ProposalModuleWidgetID = id;

        listmoduleviewmodel=objProposalModuleService.Select(1, objModuleViewModel,out listmodulefieldviewmodel, out WidgetTitle, out ModuleTemplateID);

        return View(listmoduleviewmodel);
    }
}

    public class proposalsController : ControllerBase
    {
        public string SaveHtml(int ProposalID)
        {
            var objProposalSortOrderViewModelList = new List<ProposalSortOrderViewModel>();
            proposalmoduleController objModuleController = new proposalmoduleController();    // Initilize the object of proposalmoduleController for accessing details method

            objProposalSortOrderViewModelList = GetProposalSortorders(ProposalID);

            string result;
            foreach (var item in objProposalSortOrderViewModelList)
            {
                 ViewResult viewResult = (ViewResult)objModuleController.details(Convert.ToInt32(item.KeyID), Convert.ToInt32(item.SortOrder));  // Fetch the result returned from proposalmodulecontroller,details action
                 result=viewResult.ToString();         // Need to get result fetch from the proposalmodulecontroller,details action as a string
            }
        }
    }
enter code here

请建议任何解决方案。

1 个答案:

答案 0 :(得分:0)

ViewResult不是视图。 MVC引擎使用ViewResult来确定必须呈现的视图。 我认为如果你改变观点会更好:

  • 如果您想在视图中包含部分视图,只需使用@Html.Partial
  • 处理演示文稿代码
  • 如果您想在proposalsController中获取详细信息数据,请不要调用proposalmoduleController的操作,而是调用为您提供数据的服务方法