我视图中的DropDownList
会显示相关选项,但无论我选择什么,控制器中的folders
都会获得价值null
。
为什么呢?如何修复它,以便Controller中的folders
从视图中的DropDownList
获取所选的选项?
P.S - 我没有模特。
这是我的控制器:
//POST: Home
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(IEnumerable<HttpPostedFileBase> file, string folder, IEnumerable<SelectListItem> folders)
{
// some code here
}
这是我的观点:
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken();
<div class="container">
<div class="form-horizontal">
<div class="form-group">
<p></p>
<label for="file">Upload Photo:</label>
<input type="file" name="file" id="file" accept="image/*" multiple="multiple"/>
</div>
<div class="form-group">
<div>
<label>Choose Album:</label>
@if (ViewBag.Folders != null)
{
@Html.DropDownList("folders", new SelectList(ViewBag.Folders as IEnumerable<SelectListItem>, "Value", "Text"), "--- Select Album ---", new { @class = "form-control" })
}
</div>
</div>
<div class="form-group">
<div>
<input type="submit" value="Upload" class="btn btn-default" />
</div>
</div>
</div>
</div>
}
感谢。
答案 0 :(得分:0)
要获取文件夹,请在下拉列表中输入相应的名称...
@ Html.DropDownList(&#34;夹&#34; ...
将导致您的DDL具有名称&#34;文件夹&#34; ...会尝试在您的方法中回发单个项目folders
IEnumerable<SelectListItem>
...模型绑定器无法转换...
试
@ Html.DropDownList(&#34;夹&#34; ...
注意缺少的
现在名称对应于方法中的string folder
参数...活页夹最有可能为您绑定...
如果您调试这样的错误,请使用调试器查看HttpContext.Request.Params
,它会显示请求发生时的内容......
答案 1 :(得分:0)
参数类型应该从IEnumerable更改为String,因为视图只返回选定的项目NOT collection。
//POST: Home
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(IEnumerable<HttpPostedFileBase> file, string folder, string folders)
{
// some code here
}
答案 2 :(得分:0)
只想提供另一种选择。如果您能够利用客户端解决方案,那么您可以使用隐藏的输入值和JQuery来加强这一点。
添加隐藏的输入控件:
5361792048656c6c6f20746f204d79204c6974746c6520467269656e64
添加一些Jquery:
Try this
update 'lime_answers' set 'answer' = 'bigpony'
where ('answer' = 'littlepony' AND 'language' = 'en')
答案 3 :(得分:0)
谢谢Sakthivel Ganesan,在将控制器中的IEnumerable<SelectListItem> folders
更改为string folders
之后,唯一要做的就是将我的Html.DropDownList
Value
更改为{{1像这样......
来自:
Text
要:
@Html.DropDownList("folders", new SelectList(ViewBag.Folders, "Value", "Text"), "--- Select Album ---", new { @class = "form-control" })