C# 如何从控制器中的HTML.DropDownList获取HTML
我想从控制器中的HTML.DropDownList获取HTML。这是我目前掌握的代码:C# 如何从控制器中的HTML.DropDownList获取HTML,c#,asp.net-mvc,selectlist,C#,Asp.net Mvc,Selectlist,我想从控制器中的HTML.DropDownList获取HTML。这是我目前掌握的代码: var binMasters = repository.LoadBinsByZone(12345); var ddl = new SelectList(binMasters, "BinID", "BinCode"); string result = ddl.ToString(); return result; 结果是“System.Web.Mvc.SelectList”而不是HTML。 如何从控制器中的HT
var binMasters = repository.LoadBinsByZone(12345);
var ddl = new SelectList(binMasters, "BinID", "BinCode");
string result = ddl.ToString();
return result;
结果是“System.Web.Mvc.SelectList”而不是HTML。
如何从控制器中的HTML.DropDownList获取HTML 试试看
var Html = new HtmlHelper(new ViewContext(ControllerContext, new WebFormView(""), new ViewDataDictionary(), new TempDataDictionary()), new ViewPage());
var result = Html.DropDownList("dropDownList", ddl).ToHtmlString();
试一试
控制器中没有“HTML下拉列表”。HTML直到通过视图才被呈现。(事实上,您特别不希望与原始HTML或控制器中的任何视图级功能有任何关系。这些问题应该明确分开。)
它之所以向您显示“System.Web.Mvc.SelectList”,是因为您正在对引用对象(ddl
类型为System.Web.Mvc.SelectList
)调用.ToString()
)。对象
上的.ToString
的默认行为是返回类的名称。(这是有道理的,因为对象
不知道其子对象可能会提供哪些其他功能。)
还有一个更大的问题。。。你为什么要这么做?正如我所说,控制器不应该知道或关心将从中生成的视图。事实上,控制器也应该可用于其他视图。因此,我想到,如果我们后退一步,可能有更好的方法来解决您面临的根本问题。控制器中没有“HTML DropDownList”。HTML直到通过视图才被呈现。(事实上,您特别不希望与原始HTML或控制器中的任何视图级功能有任何关系。这些问题应该明确分开。)
它之所以向您显示“System.Web.Mvc.SelectList”,是因为您正在对引用对象(ddl
类型为System.Web.Mvc.SelectList
)调用.ToString()
)。对象
上的.ToString
的默认行为是返回类的名称。(这是有道理的,因为对象
不知道其子对象可能会提供哪些其他功能。)
还有一个更大的问题。。。你为什么要这么做?正如我所说,控制器不应该知道或关心将从中生成的视图。事实上,控制器也应该可用于其他视图。因此,我想到,如果我们后退一步,可能有更好的方法来解决您面临的根本问题。为什么您只需在控制器中创建一个方法,返回一个操作结果,它是与您要呈现的视图关联的html
//this if you want get the html by get
public ActionResult Foo()
{
return View();
}
客户这样打电话
$.get('your controller path', parameters to the controler , function callback)
或
此外,您还可以加载部分视图,并使用jquery加载在视图的特定部分中进行渲染,而jquery加载只不过是一个名为的ajax。为什么您只需在控制器中创建一个方法,返回一个操作结果,该结果是与要渲染的视图关联的html
//this if you want get the html by get
public ActionResult Foo()
{
return View();
}
客户这样打电话
$.get('your controller path', parameters to the controler , function callback)
或
您还可以加载局部视图,并使用jquery加载在视图的特定部分进行渲染,jquery加载只不过是一个名为为什么需要html???的ajax而已???。我的意思是,你为什么要尝试完成???我正在打一个AJAX电话,想用一个元素更新一个div。请参阅我的答案,用razor和jquerywhy处理html元素你需要html???。我的意思是,你为什么要尝试完成???我正在打一个AJAX电话,想用一个元素更新一个div。请参阅我的答案,用razor和jqueryBala处理html元素,谢谢你的回复。当我尝试它时,我遇到了以下错误:“System.Web.Mvc.ViewContext”不包含接受4个参数的构造函数。有什么想法吗?@Tarzan查看这个问题的答案,Bala,谢谢你的回答。当我尝试它时,我遇到了以下错误:“System.Web.Mvc.ViewContext”不包含接受4个参数的构造函数。有什么想法吗?@Tarzan看看这个问题的答案