接收推送消息并使用MVC 4中的内容

时间:2014-06-09 10:06:41

标签: asp.net-mvc asp.net-mvc-4 http-post

我是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)

提前致谢

1 个答案:

答案 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

进行操作