C# 使用httpGet-MVC从视图向控制器发送字符串
我是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("
字符串,以便在数据库中查找对象。但是,我不知道如何在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>