2009-04-07 62 views
0

我在我的asp.net mvc应用程序中有一个文件上传功能,允许用户上传包含应该保存到数据库的数据的xslx文件。这些数据可能与许多类别中的一个有关。我需要能够辨别进入的数据应该与哪个类别相关,因此我认为下拉列表对于这项工作来说是完美的。但是,我不知道如何在用户发布数据时获取列表选定值。这是什么形式的代码如下所示:DropDownList与在asp.net中的文件上传结合使用mvc

<form action="/Import/UploadFiles/" method="post" enctype="multipart/form-data"> 
    <fieldset id="fileImport"> 
     <legend>Importinställningar</legend> 
     <label for="file">Importfil:</label> 
     <input type="file" id="file" name="file" /> 
     <%= Html.DropDownList("Name", (IEnumerable<SelectListItem>)ViewData["assignments"]) %> 
     <p> 
      <input type="submit" value="Spara"/> 
      <input type="button" value="Avbryt" onclick="window.location.href='/'" /> 
     </p> 
    </fieldset> 
</form> 

因为我处理一个文件上传的情况我没有,我可以使用将数据传递给控制器​​的操作链接,而是输入与类型提交。

我应该如何阅读下拉列表的选择值,以便将其选定值传递给控制器​​?

回答

0

有几种不同的方法可以使这项工作。首先,将一个名为Name的字符串参数添加到UploadFiles方法中。默认联编程序将从具有相同名称的表单值填入。或者,您可以在控制器内部使用ValueProvider - 如果您使用相同的操作来呈现视图和响应帖子,例如 - 提取名为Name的参数的值。

public ActionResult UploadFiles(string Name) 
{ 
    ... 
} 

public ActionResult UploadFiles() 
{ 
    string name = this.ValueProvider.ContainsKey("Name") 
         ? this.ValueProvider[key].AttemptedValue 
         : null; 

    ... 
} 
+0

我卡住了我的思维必须通过所产生的URL传递的价值。当然这有效。谢谢一堆!花一点时间习惯MVC :) – Ciddan 2009-04-07 20:27:33