我是MVC的新手,我想创建一个MVC4 Web Api,它接收请求正文中包含内容的推送消息(HTTP Post)并使用它保存在数据库中。
现在我有了这段代码(只需将内容传递给视图而不是保存在DB中):
[HttpPost]
public ActionResult Index()
{
string data;
using (Stream receiveStream = Request.InputStream)
{
using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8))
{
data = readStream.ReadToEnd();
}
}
data = data.Split('\"')[1];
//var x = data;
ViewBag.Message = data;
return View();
}
我的问题是如何强制控制器获取方法签名中的内容,例如,如果内容存在于名为data的参数中:
public ActionResult Index(string data)
提前致谢
答案 0 :(得分:0)
您可以将数据绑定到Model
然后使用它,甚至只需从视图中传递字符串
代码示例 图强>
@model MVCFormsExample.ViewModels.BookViewModel
@{
ViewBag.Title = "Create Book";
}
@using (Html.BeginForm())
{
@Html.HiddenFor(m => m.Id)
<div class="editor-label">
@Html.LabelFor(m => m.Name)
</div>
<div class="editor-field">
@Html.EditorFor(m => m.Name)
</div>
<button type="submit">Create</button>
}
<强>控制器强>
`[HttpPost]
public ActionResult Create(BookViewModel viewModel)
{
if (ModelState.IsValid)
{
// TODO: Save book
return RedirectToAction("Index");
}
return View(viewModel);
}'
或强> 查看强>
@using(Html.BeginForm("Show", "User", FormMethod.Post, new { uid = 1, uname = "user1" }))
{
<input type="submit" value="+"/>
}
<强>控制器强>
[HttpPost]
public string Show(int? uid, string uname)
{
return uname + uid.ToString();
}
对于WEB API,您可以按照 This Link
进行操作