我是MVC3的新手,我想创建一个带有输入列和文件上传的表单。
当我尝试同时做这两件事时,问题出现了。
这是我的代码
...
[HttpPost]
public ActionResult About(string inputStr)
{
string local = inputStr;
string[] word = inputStr.Split(':');
return View();
}
[HttpPost]
public ActionResult GetFile(string inputStr, HttpPostedFileBase file)
{
string filename = file.FileName;
return RedirectToAction("About");
}
这两个是我的控制器
@using (Html.BeginForm("GetFile", "Home", (new { inputStr = "111" }), FormMethod.Post, new { enctype = "multipart/form-data" })){
<div class="editor">
<input type="file" name="file" />
<input type="submit" value="OK" id="submitFile" class="testingSubmit"/>
</div>
}
此代码适用于上传文件和将字符串“111”发送到控制器。
这是另一个jQuery函数
$('.testingSubmit').click(function () {
var totalString="";
$('.editor-field :input').each(function () {
alert($(this).val());
totalString += $(this).val().toString() + ":";
});
$('form').submit();
/* $.post("About", { inputStr: totalString}, function (data) {
});*/
});
在这里,我要做的是获取用户输入并将其放在字符串totalString上。 我可以使用$ .post
将totalString发布到控制器我的问题是: 我在正确的轨道上吗?即是否可以将这两项任务与一个职位一起完成? 2.如果没有,可能的解决办法是什么?
非常感谢您的关注,希望这可以解决!
答案 0 :(得分:0)
我认为这样的事情应该有效:
@using (Html.BeginForm("GetFile", "Home", (new { inputStr = "111" }), FormMethod.Post, new { @id = "frmGetFile", enctype = "multipart/form-data" })){
<div class="editor">
<input type="file" name="file" />
<input type="hidden" name="totalString" id="totalString"/>
<input type="submit" value="OK" id="submitFile" onclick="submitGetFileForm()" class="testingSubmit"/>
</div>
}
JavaScript的:
function submitGetFileForm(e)
{
e.preventDefault();
var total = //build your total string here
$('#totalString').val(total);
$('#frmGetFile').submit();
}
控制器:
[HttpPost]
public ActionResult GetFile(string totalString, HttpPostedFileBase file)
{
// your action logic..
}