iT邦幫忙

1

MVC 前端打的訊息後端沒有收到...

小弟幫公司修改系統功能,繼承上一個工程師留下來的Code,然後在已存在的頁面新增一個另一個頁面的功能近來,依照MVC的架構,View跟Model還有後端的Controller都已經寫上去了,但是我的前端功能無法呼叫到後端對應的Controller內,所以不知道哪裡理解錯誤,麻煩大大幫幫我...

View: 寫在.cshtml
而下方有一個JS另外寫在main.js

 viewData: {
           clickParent() {
      this.$refs.projectlist.searchinterface(this.vm, this.keywordpoint);
    },
    getMappingData: function () {
      this.$axios.post('/Project/Project/GetData')
        .then((response) => {
          var data = JSON.parse(response.data.mvvm);
          this.mapping = data;
        })
        .catch(function (error) {
          alert("發生錯誤,請重新登入");
          document.location.href = "/";
        });
    },

我在Controller端用中斷點查詢,然後接到下面的Controller端,他卻沒有到這邊的中斷點...

 [HttpPost]
    public ActionResult GetData()
    {
      ProjectViewModel projectView = new ProjectViewModel();

      ProjectFacade facade = new ProjectFacade();

      projectView = facade.GetData();

      var mvvm = JsonConvert.SerializeObject(projectView);
      return Json(new { mvvm }, JsonRequestBehavior.AllowGet);
    }

請問我是缺少什麼程式碼嗎?
如果我有缺少什麼必要條件,再麻煩跟我說,我在傳上來,敢溫

看更多先前的討論...收起先前的討論...
dragonH iT邦超人 6 級 ‧ 2020-03-02 17:53:03 檢舉
我對 .net 不熟

但是你可以看一下 browser 的 console network 那頁

看看 call api 的 情況

沒問題的話再看後端的 log

也有可能你根本沒發 request 也說不定
player iT邦大師 1 級 ‧ 2020-03-02 22:55:48 檢舉
this.$axios.post('/Project/Project/GetData')
這個怪怪的? 通常MVC用的Url只有2層
你卻寫3層?
Player: 另一個可以執行的網頁他是寫3層沒錯...我剛剛把它改2層一樣沒有跳到中斷點那~
DragonH: Call API的意思是Console那端會出現很多紅字的錯誤...
可是原本可以正常跑的那個網頁跟我現在寫進去的那個網頁,錯誤都是一樣的(?
照理來講不是應該一樣可以跑嗎
dragonH iT邦超人 6 級 ‧ 2020-03-03 14:54:40 檢舉
我是說看 `network` 那頁唷

看你的 request 有沒有正常發出去
我有下載Vue tools發現request 是false,我懷疑是我的 this.$axios.post的路徑錯誤,有方法可以找到 正確的路徑方法嗎?
或者有方法找到前端 axios的元件有沒有引入?
0
雞塊哥
iT邦研究生 5 級 ‧ 2020-03-02 17:58:55

應該不是要用[HttpPost]吧

小弟愚笨,請問是改[HttpGet]嗎? 因為我改Get一樣沒變化

我後端打的是[HttpPost],前端也是用this.$axios.post這邊需要修改嗎?

1
Homura
iT邦高手 1 級 ‧ 2020-03-02 18:06:29

Controller是不是有套用filter來做驗證
所以沒進到Action裡面??

或是你去看看Router有沒有做什麼特殊設定?

我從原本可以的Controller去搜尋filter關鍵字,並沒有出現在裡面,從資料夾的RouterConfig.cs裡面去看也沒有相關的code...

Homura iT邦高手 1 級 ‧ 2020-03-03 16:07:38 檢舉

terpoo1250
他不一定叫filter可能會較其他名字
然後Attribute就是用中括號框起來放在class或method上面
例如

[Authorize]
public class AccountController : Controller
{
}
1
Luke
iT邦新手 3 級 ‧ 2020-03-03 08:54:43

FilterConfig.cs & RouteConfig.cs 看看有沒有特殊設定
再看看有沒有 繼承AuthorizeAttribute 的程式 去過濾

FilterConfig.cs & RouteConfig.cs 裡面都沒有相關的Code,只有短短幾行字而已,
請問該如何去過濾有沒有繼承 AuthorizeAttribute 的程式?

我要發表回答

立即登入回答