我的应用中有一个联系人视图,它包含一个表单,定义如下:
<form role="form" style="width:100%; float:left;">
<div class="form-group">
<a href="#"><img src="~/Content/img/zarf.png" class="zarf-pos"></a>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Name and Surname</label>
<input type="text" name="fullName" class="form-control" id="exampleInputEmail1" placeholder="Enter your full name" required>
</div>
<div class="form-group">
<label for="exampleInputPassword1">E-Mail</label>
<input type="email" name="emailAddress" class="form-control" id="exampleInputPassword1" placeholder="Enter your e-mail address" required>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Write to us</label><br>
<textarea name="message" class="form-control" rows="5" placeholder="How can we help you?" required></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-default reg-position">Send</button>
</div>
</form>
然后,在我的控制器中,我有两个ActionResults,一个HttpGet和一个HttpPost,定义如下:
[HttpGet]
public ActionResult Contact()
{
return View();
}
[HttpPost]
public ActionResult Contact(string fullName, string emailAddress, string message)
{ // some functionality }
但是,当我填写表单并单击“发送”按钮时,它会重定向到空的“联系”页面。关键是我需要有两个Contact方法,而在我的Post方法中,我有一些代码假定字符串不为空。如果我只有一个联系方法,我会收到一条错误消息,指出该字符串为空,并且不显示该视图。所以,我决定使用两种方法,但不知道在按下按钮时如何调用post方法。
答案 0 :(得分:2)
假设您使用Razor创建视图,请按以下方式定义表单:
@using( Html.BeginForm() )
{
<div class="form-group">
<a href="#"><img src="~/Content/img/zarf.png" class="zarf-pos"></a>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Name and Surname</label>
<input type="text" name="fullName" class="form-control" id="exampleInputEmail1" placeholder="Enter your full name" required>
</div>
<div class="form-group">
<label for="exampleInputPassword1">E-Mail</label>
<input type="email" name="emailAddress" class="form-control" id="exampleInputPassword1" placeholder="Enter your e-mail address" required>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Write to us</label><br>
<textarea name="message" class="form-control" rows="5" placeholder="How can we help you?" required></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-default reg-position">Send</button>
</div>
}
这将确保生成正确的<form>
元素以回发您的操作。
P.S。只是一些术语管家...你没有调用ActionResult,你调用Actions并返回ActionResults。如果您正在使用正确的名称,那么当您与其他开发人员交谈时,它会有所帮助。