C# 再次调用同一控制器方法无效

C# 再次调用同一控制器方法无效,c#,jquery,ajax,asp.net-mvc,asp.net-mvc-4,C#,Jquery,Ajax,Asp.net Mvc,Asp.net Mvc 4,我在WriteupController.cs中有以下控制器方法: public async Task<ActionResult> Writeups(string symbol, string status, DateTime? mktDate, DateTime? writeupDate) { // get datamodel return View(datamodel); } 如您所见,url是相同的。调试时,我可以在controller方法中的dat

我在WriteupController.cs中有以下控制器方法:

public async Task<ActionResult> Writeups(string symbol, string status,  
    DateTime? mktDate, DateTime? writeupDate)
{
    // get datamodel
    return View(datamodel);
}
如您所见,url是相同的。调试时,我可以在controller方法中的datamodel中看到正确的数据,也可以在cshtml视图中看到正确的数据。但是,该页面未加载。也就是说,我没有看到新符号的信息。如何解决此问题

编辑:

以下是我的观点。如前所述,最初我看到CompDescShort。但当我从ajax调用时就不是了

            <textarea name="editor" id="editor" rows="10" cols="80">
                @if (Model.Count > 0)
                {
                        @Model.CompDescShort
                }
            </textarea>

@如果(Model.Count>0)
{
@Model.CompDescShort
}
固定,通过使用:

        <select id="companiesDDL" class="tmpdisplay" style="margin-left: 15px;" onchange="location.href=this.value">
            @foreach (var item in Model.companyList)
            {
                <option value='@Url.Action("Writeups", "Writeup", new { symbol = item.SecSymbol, status = "A" })'>@item.SecDesc</option>
            }
        </select>

@foreach(Model.companyList中的var项)
{
@item.SecDesc
}

我很感激您有一个修复程序,可以在选择某个项目时刷新整个页面,但采用您最初的ajax方法,以下方法应该可以工作:

$("#companiesDDL").change(function () {   
        var postdata = { "symbol": "1099.HK", "status": "A", "mktDate": "10/10/2010", "writeupDate": "10/10/2010" };
        $.ajax({
            url: '@Url.Action("Writeups", "Writeup")',
            dataType: "json",
            data: postdata,
            success: function (result, status, xhr) {
                $('#editor).val(xhr.statusText);
            },
            error: function (xhr, status, error) {                     
            }
        });

您缺少的一点是,当ajax调用完成时,由调用方决定如何处理它。在本例中,我们使用ID定位器
$(“#编辑器”)
在jQuery中定位
元素,并使用
val()

设置其值,您希望对操作的结果做什么?在Div中插入,在新选项卡中打开?是否加载到当前窗口?或者您需要在当前页面上接收更新部分零件的信息?请参阅编辑。有相似的文本区域等。我只想显示相同的页面,包含所选符号的数据。帖子后是否点击了
alert()
?是的,点击了alert。Mauri是正确的。您正在进行一个AJAX调用,因此您的DOM不会被刷新,除非您执行js:
$('#editor').html(结果)在您的成功承诺中。Action可以工作,因为这是一个完整的请求。
        <select id="companiesDDL" class="tmpdisplay" style="margin-left: 15px;" onchange="location.href=this.value">
            @foreach (var item in Model.companyList)
            {
                <option value='@Url.Action("Writeups", "Writeup", new { symbol = item.SecSymbol, status = "A" })'>@item.SecDesc</option>
            }
        </select>
$("#companiesDDL").change(function () {   
        var postdata = { "symbol": "1099.HK", "status": "A", "mktDate": "10/10/2010", "writeupDate": "10/10/2010" };
        $.ajax({
            url: '@Url.Action("Writeups", "Writeup")',
            dataType: "json",
            data: postdata,
            success: function (result, status, xhr) {
                $('#editor).val(xhr.statusText);
            },
            error: function (xhr, status, error) {                     
            }
        });