2012-07-09 59 views
-2

什么来呈现的输入值,并将其发送到控制器的方式:获得输入文本框的值,并将其发送到控制器

<div id="fileuploaddiv" class="fileuploaddivclass"> 
<form action="@Model.FormAction" method="@Model.FormMethod" 
    enctype="@Model.FormEnclosureType"> 
<input type="hidden" name="key" value="uploads/${filename}" id="filename" /> 
<input type="hidden" name="AWSAccessKeyId" value="@Model.AWSAccessKey" /> 
<input type="hidden" name="Content-Type" value="image/jpeg"> 
<div> 
    Please specify a file, or a set of files: 
    <input type="file" name="file" /> 
</div> 
<input type="submit" value="Upload" /> 
</form> 
</div> 

回答

1

你需要看一些MVC3公约(我倒是推荐的NerdDinner作为一个良好的开端教程),但这里是一个有点类似的方法,你想做什么:

@Model YourViewModel 
<div id="fileuploaddiv" class="fileuploaddivclass"> 
    @using(Html.BeginForm(Model.FormAction, Model.FormController, FormMethod.Post) 
     @Html.HiddenFor(model.key => ${fileName}) 
     @Html.HiddenFor(model.AWSAccessKeyID) 
     @Html.HiddenFor(model.Content-Type) 
     @<input type="submit" value="Submit My Form" /> 
    @Html.EndForm() 
</div> 

您的模型看起来就像(我在这里困惑,因为你似乎是动态设置控制器和操作,这是unfua 1):

public class YourViewModel 
{ 
    public string FormAction { get; set; } 
    public string FormController { get; set; } 
    public int AWSAccessKeyID { get; set; } 
    public string Content-Type { get; set; } 
} 

现在到控制器:

[HttpGet] 
public ActionResult WhateverControllerName() 
{ 
    YourViewModel yvm = new YourViewModel(); 
    //Initalize viewmodel here 
    Return view(yvm); 
} 

[HttpPost] 
public ActionResult WhateverControllerName(YourViewModel yvm) 
{ 
    if (ModelState.IsValid) { 
     //Do whatever you want here. Perhaps a redirect? 
    } 
    return View(yvm); 
} 

注:我在语法垃圾,所以你必须要检查这一点,但Visual Studio中应该告诉你的作品。

相关问题