等待2个Javascript函数和2个C#函数?
我有一个用ASP.NET核心MVC制作的Web应用程序。我有两个JavaScript函数和两个C#函数,它们应该一行执行 我需要做的是: 单击按钮>弹出表单>填写值>将值发送回控制器中的方法>在同一控制器的另一个方法中使用该值>将值附加到所有行 我想做的过程是: 有1个按钮>点击按钮调用2个JavaScript函数>首先运行SetDate函数,然后运行AppendDate>将SetDate函数组合成一种形式,该形式在局部视图中>,在继续执行AppendDate函数之前,必须先完成第一个函数(由于表单还将调用一个从表单中获取结果的C#函数)>那么另一个C#函数必须由第二个“onclick”事件运行 HTML表单代码如下:等待2个Javascript函数和2个C#函数?,javascript,c#,jquery,asp.net,asp.net-core,Javascript,C#,Jquery,Asp.net,Asp.net Core,我有一个用ASP.NET核心MVC制作的Web应用程序。我有两个JavaScript函数和两个C#函数,它们应该一行执行 我需要做的是: 单击按钮>弹出表单>填写值>将值发送回控制器中的方法>在同一控制器的另一个方法中使用该值>将值附加到所有行 我想做的过程是: 有1个按钮>点击按钮调用2个JavaScript函数>首先运行SetDate函数,然后运行AppendDate>将SetDate函数组合成一种形式,该形式在局部视图中>,在继续执行AppendDate函数之前,必须先完成第一个函数(由于
@model IEnumerable<application.Models.Moederblad>
<div id="element_to_pop_up">
<a class="b-close">x</a>
@using (Html.BeginForm("Incassodatum", "Moederblads", FormMethod.Post, new { id = "dateForm" }))
{
<br />
<div class="row">
<div class="col-md-6">
<label for="Incassodatum">Incassodatum</label>
<input class="form-control" placeholder="Bijvoorbeeld: 19-02-2020" type="text" data-val="true" data-val-regex="Dat is geen geldige datum" data-val-regex-pattern="^(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)[0-9]{2}$, " id="Incassodatum" name="Incassodatum">
</div>
</div>
<div class="row">
</div>
<br>
<input name="__RequestVerificationToken" type="submit" class="btn btn-primary submit" value="Toevoegen" id="submit">
}
</div>
然后是从表单中获取值的C#方法(此方法已确认有效)
然后是第二个C#方法,它从上述方法中获取值,并为所有行设置值
[HttpPost, ValidateAntiForgeryToken]
public IActionResult AppendDateToIncassoDatum([Bind("<All model properties>")]Moederblad moederblad)
{
if (ModelState.IsValid && TempData["Incassodatum"] != null)
{
//Datum van vandaag in juiste formaat pakken en in een variabele stoppen
var datum = TempData["Incassodatum"].ToString();
if (datum == null)
{
return View("Error");
}
//Model content ophalen
var model = _context.Moederblad.ToList();
//We gebruiken hier een foreach statement omdat we elke rij willen updaten
foreach (var entry in model)
{
//Hier check je of de gehele string van Incasso datum niet al een string heeft met de datum van vandaag, zoja breekt hij de operatie af
//zo niet, gaat ie door en vult hij de datum aan.
if (entry.Incassodatum.Contains(datum))
{
return View("Error-BA");
}
else
{
entry.Incassodatum += ", " + datum;
}
}
//opslaan van de geupdate gegevens
_context.SaveChanges();
if (datum != null)
{
return View("Success");
}
else
{
return View("Error");
}
}
//Mocht het opslaan misgaan, stuur door naar de error page
else
{
return View("Error");
}
}
[HttpPost,ValidateAntiForgeryToken]
public IActionResult AppenddateToIncassodatam([Bind(“”)Moederblad Moederblad)
{
if(ModelState.IsValid&&TempData[“Incassodatum”]!=null)
{
//瓦里贝勒-斯托彭省帕克肯县juiste Format van vandaag基准面
var-datum=TempData[“incassodatam”].ToString();
如果(基准==null)
{
返回视图(“错误”);
}
//模型含量
var model=_context.Moederblad.ToList();
//我们希望每个声明都能更新
foreach(模型中的var条目)
{
//检查所有管柱是否符合标准,是否符合操作要求
//zo niet,我的门在基准面上。
if(条目包含(基准))
{
返回视图(“错误BA”);
}
其他的
{
输入。输入坐标+=“,”+基准;
}
}
//奥普斯兰·范德格文斯
_SaveChanges();
如果(基准面!=null)
{
返回视图(“成功”);
}
其他的
{
返回视图(“错误”);
}
}
//莫赫特·奥普斯兰·米斯甘,错误页
其他的
{
返回视图(“错误”);
}
}
但现在发生的事情是,当我点击按钮时,表单加载完成后,它直接启动第二个Javascript函数,表单在该点上甚至没有值。第二个Javascript函数然后运行C#函数并重定向我,但没有结果。它应该在第一个C#方法有值时运行从表格上看。有人知道怎么做吗?卡了3天了
提前感谢!这是正确的流程。您将自己与在一个按钮上使用两个事件相混淆。 让我们逐步了解您拥有的JS流:
嗯,您试图推动的流程有问题。重定向应该绑定到其他控件,这就是正确的流程。您已经将自己与在一个按钮上使用两个事件混淆了。 让我们逐步了解您拥有的JS流:
嗯,您试图推动的流程有问题。重定向应该绑定到其他控件,以分解您的流程:
public IActionResult Incassodatum(string Incassodatum)
{
string date= "";
if (ModelState.IsValid)
{
date = Incassodatum;
}
else
{
date = "Daar ging wat mis";
}
TempData["Incassodatum"] = $"{Incassodatum}";
return null;
}
[HttpPost, ValidateAntiForgeryToken]
public IActionResult AppendDateToIncassoDatum([Bind("<All model properties>")]Moederblad moederblad)
{
if (ModelState.IsValid && TempData["Incassodatum"] != null)
{
//Datum van vandaag in juiste formaat pakken en in een variabele stoppen
var datum = TempData["Incassodatum"].ToString();
if (datum == null)
{
return View("Error");
}
//Model content ophalen
var model = _context.Moederblad.ToList();
//We gebruiken hier een foreach statement omdat we elke rij willen updaten
foreach (var entry in model)
{
//Hier check je of de gehele string van Incasso datum niet al een string heeft met de datum van vandaag, zoja breekt hij de operatie af
//zo niet, gaat ie door en vult hij de datum aan.
if (entry.Incassodatum.Contains(datum))
{
return View("Error-BA");
}
else
{
entry.Incassodatum += ", " + datum;
}
}
//opslaan van de geupdate gegevens
_context.SaveChanges();
if (datum != null)
{
return View("Success");
}
else
{
return View("Error");
}
}
//Mocht het opslaan misgaan, stuur door naar de error page
else
{
return View("Error");
}
}