Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用httpGet-MVC从视图向控制器发送字符串_C#_Html_Asp.net Mvc - Fatal编程技术网

C# 使用httpGet-MVC从视图向控制器发送字符串

C# 使用httpGet-MVC从视图向控制器发送字符串,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,我是MVC的新手,所以请容忍我 我试图从文本框向控制器方法发送字符串,以便在数据库中查找对象。但是,我不知道如何在HttpGet请求中将字符串从视图成功发送到控制器(仅在HttpPost中) 我眼中的代码 <div> <label>Email</label> @Html.TextBox("email") </div> <div class="btn btn-success"> @Html.ActionLink("

我是MVC的新手,所以请容忍我

我试图从文本框向控制器方法发送
字符串
,以便在数据库中查找对象。但是,我不知道如何在
HttpGet
请求中将字符串从视图成功发送到控制器(仅在
HttpPost
中)

我眼中的代码

<div>
    <label>Email</label>
    @Html.TextBox("email")
</div>
<div class="btn btn-success">
    @Html.ActionLink("Edit RSVP", "Edit")
</div>
如果有人知道我如何发送此字符串,我将不胜感激


谢谢

最简单的方法是创建一个表单,如下所示:

@using(Html.BeginForm("Edit", ControllerName, FormMethod.GET))
{
    @Html.Label("Email")
    @Html.TextBox("email")

    <input type="submit" value="Edit RSVP"/>
}
像这样:

@using (Html.BeginForm("Edit", "ControllerName", FormMethod.Get))
{
    <div>
        <label>Email</label>
        @Html.TextBox("email")
    </div>
    <div class="btn btn-success">
         <input type="submit" value="Edit RSVP" />
    </div>
}
然后,您需要确保控制器根据通过GET发送的电子邮件返回部分视图: GuestDataController.cs

[HttpGet]
public ActionResult Edit(string email)
{
    // If the email the typed is find, it will display their contents on to a RsvpForm view
    return PartialView("RsvpForm", guestRepository.Find(email));
}
然后创建AJAX表单,通过GET提交请求,并在不重新加载页面的情况下加载部分视图:view.cshtml

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

@using (Ajax.BeginForm("Edit", "GuestData", null, new AjaxOptions { UpdateTargetId = "UserData", HttpMethod = "Get" }, null))
{
    <div>
        <label>Email</label>
        @Html.TextBox("email")
    </div>
    <div class="btn btn-success">
        <input type="submit" value="Edit RSVP" />
    </div>
}

<div id="UserData"></div>

@使用(Ajax.BeginForm(“编辑”、“GuestData”、null、新的AjaxOptions{UpdateTargetId=“UserData”、HttpMethod=“Get”},null))
{
电子邮件
@Html.TextBox(“电子邮件”)
}

您不应该使用get请求将表单字段中的值发送给控制器,表单应该过账。您的get操作需要类似于
/controller/edit?email=something
的内容。您需要将代码包装在
表单
标记中,并使用
输入类型=提交
按钮,而不是操作链接。
@model GuestData 

<div class="hdr">Name</div>
<div class="value">@Model.Name</div>
<div class="hdr">Email</div>
<div class="value">@Model.Email</div>
[HttpGet]
public ActionResult Edit(string email)
{
    // If the email the typed is find, it will display their contents on to a RsvpForm view
    return PartialView("RsvpForm", guestRepository.Find(email));
}
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

@using (Ajax.BeginForm("Edit", "GuestData", null, new AjaxOptions { UpdateTargetId = "UserData", HttpMethod = "Get" }, null))
{
    <div>
        <label>Email</label>
        @Html.TextBox("email")
    </div>
    <div class="btn btn-success">
        <input type="submit" value="Edit RSVP" />
    </div>
}

<div id="UserData"></div>